Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 30, 2012 13:35:25

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

https://code.djangoproject.com/ticket/361
Собственно 7 лет назад, была такая политика)

Офлайн

#2 Окт. 30, 2012 14:57:30

zheromo
От:
Зарегистрирован: 2010-10-02
Сообщения: 356
Репутация: +  2  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

Вполне понимаю ТС
На мой взгляд речь как раз и идет не о неких старых тикетах, и о какой-то там политике, а том как начать “нормально” т.е. с удовольствием кодить на продукте который почти не расширяем (созданием темплэйт тегов и т.д., с появлением CBV с эти стало лучше), а про вопрос как кто это делал.

Я конечно понимаю, что если программист глуп, то НУЖНО его заставлять идти правильным путем.

А чемодан иногда не представляется возможным бросить и взять другой, например тебе его дали и на перекладывание вещей в другой нет или времени, или это невозможно по каким то другим причинам.



Офлайн

#3 Окт. 30, 2012 17:59:05

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

slav0nic
Собственно 7 лет назад, была такая политика
Да, и это печально. Тут должен быть грустно улыбающийся смайлик :)



Офлайн

#4 Окт. 30, 2012 22:30:53

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

zheromo
web - понятие растяжимое, для блогов/новостных сайтов и тп задач джанга отлично подходит, для каких-то сложных веб-инструментов, сервисов вот не очень.
Поэтому кроме джанги лучше что-то ещё знать для мелких утилит и серьёзных сервисов.
Ну и хотелось бы всё-таки больше конкретики, что легко сделать не в джанге (крутой запрос на алхимии не в счёт:]),а в джанге - ацкий геморрой.

Офлайн

#5 Окт. 30, 2012 22:51:47

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

А если учесть что сейчас прогресс движется в сторону Ajax, то Django вообще отстал.
Вот к примеру те же “формы” что упоминал автор, а точнее валидаторы форм. Как блин получить этот form.error используя Ajax когда в ответ приходит уж явный перебор.

Буквально недавно начал изучать Ыии (PHP), вот интересно кто имел дело с этим фреймворком скажите в чем различие (+ или -).Мне лично начинает нравится… , очень гибкий framework.

А еще больше хотел бы услышать мнение от создателя php.ru (написан на Ыии :), ) который мне не раз помогал на этом форуме.



Офлайн

#6 Окт. 30, 2012 23:02:49

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

http://www.dajaxproject.com/ например
или банально через jquery.form.js
как бы плохой пример кривости в джанге, другие фрейморки тут вряд ли в более выигрышном положении %)

Ещё на тему монолитности джанги и невозможности юзать любые шаблорнизаторы/формы: если взять тот же pyramid, то часто можно встретить, что ряд модулей использует не те шаблонизаторы/формы/орм что в core проекта, смотрится довольно убого.

Отредактировано slav0nic (Окт. 30, 2012 23:10:07)

Офлайн

#7 Окт. 30, 2012 23:49:40

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

slav0nic кстати, буквально вчера же просматривал именно этот “моющий” сайт :)
Мне как то проще так:

def count_comments(request):
    if request.method == 'POST':
        return HttpResponse(Comment.objects.count())

И это чтобы в Django админке показать количество новых комментариев
http://javascript.ru/forum/ajax/32702-kak-mozhno-keshirovat-ajax-zapros.html#post212416

Мне конечно Django во многом нравится но как коснется мелочи, дак сразу начинается “ахтунг”



Отредактировано Saturn (Окт. 30, 2012 23:56:09)

Офлайн

#8 Окт. 31, 2012 11:28:42

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

пока я реального “ахтунга” так и не увидел …
больше похоже на крики людей, которые слабо в теме ;)

Офлайн

#9 Ноя. 3, 2012 20:12:19

kmike
От:
Зарегистрирован: 2009-12-07
Сообщения: 56
Репутация: +  4  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

class SomeForm(forms.ModelForm):
    class Meta:
        widgets = {
               'income_date' : forms.TextInput(attrs={'class':'calendar'}),
               'income_order_date' : forms.TextInput(attrs={'class':'calendar'}),
               'outgoing_date' : forms.TextInput(attrs={'class':'calendar'}),
               'outgoing_order_date' : forms.TextInput(attrs={'class':'calendar'}),
         }

это - действительно ужас. Ставим django-widget-tweaks:
pip install django-widget-tweaks
потом добавляем widget_tweaks в INSTALLED_APPS и в шаблоне пишем
{% load widget_tweaks %}
{% render_field form.income_date class="calendar" %}

Приложению года 2 уже, после небольшого гугления находится. По сути - то же самое, параметры в конструктор виджета передаются, просто с джанговским синтаксисом в шаблоне (отдельным тегом). Хотя как в wtforms/jinja2 мне тоже нравится. Хотел эту штуку в саму джангу пропихнуть, но нормальный патч времени требует, а пока можно с pypi ставить. Там и сами разработчики хотели рендеринг форм переделать, на 2011 GSoC проект был, но в итоге шаблоны сильно медленнее получились, и результаты не закоммитили из-за этого (основа подхода из GSoC болтается тут: https://github.com/SmileyChris/django-forms ).



Офлайн

#10 Ноя. 16, 2012 15:54:12

zheromo
От:
Зарегистрирован: 2010-10-02
Сообщения: 356
Репутация: +  2  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

Saturn
А если учесть что сейчас прогресс движется в сторону Ajax, то Django вообще отстал.
Вот к примеру те же “формы” что упоминал автор, а точнее валидаторы форм. Как блин получить этот form.error используя Ajax когда в ответ приходит уж явный перебор.

Я для себя это сделал так:

class JsonFormResponseMixIn(object):
    def _to_json(self, j):
        callback = self.request.GET.get('callback')
        if callback:
            j[JSONP_KEY] = callback
        return j
    def get_json_object(self):
        if hasattr(self.object, '__json__'):
            return self.object.__json__()
        else:
            return self.get_default_json_object()
    def get_default_json_object(self):
        return dict(
            id=self.object.id,
            name=unicode(self.object)
        )
    @to_json
    def form_valid_response(self):
        return self._to_json(dict(
            success = True,
            object = self.get_json_object(),
        ))
    def form_valid(self, form):
        self.object = form.save()
        return self.form_valid_response()
    @to_json
    def form_invalid(self, form):
        return self._to_json(dict(
            success = False,
            errors = [ (unicode(field.label), u", ".join(field.errors)) for field in form if field.errors],
        ))

И на jq простой скрипт:

    function showFormEror(data) {
                error_box.empty().show();
                $.each(data.errors, function(index, error) {
                    error_box.append('<p><b>' + error[0] + '</b>: ' + error[1] + '</p>');
                });
                if (data.message)
                    error_box.append('<h2>' + data.message + '</h2>');
            };



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version