Найти - Пользователи
Полная версия: Django - чемодан без ручки
Начало » Django » Django - чемодан без ручки
1 2 3 4
slav0nic
https://code.djangoproject.com/ticket/361
Собственно 7 лет назад, была такая политика)
zheromo
Вполне понимаю ТС
На мой взгляд речь как раз и идет не о неких старых тикетах, и о какой-то там политике, а том как начать “нормально” т.е. с удовольствием кодить на продукте который почти не расширяем (созданием темплэйт тегов и т.д., с появлением CBV с эти стало лучше), а про вопрос как кто это делал.

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

А чемодан иногда не представляется возможным бросить и взять другой, например тебе его дали и на перекладывание вещей в другой нет или времени, или это невозможно по каким то другим причинам.
Lexander
slav0nic
Собственно 7 лет назад, была такая политика
Да, и это печально. Тут должен быть грустно улыбающийся смайлик :)
slav0nic
zheromo
web - понятие растяжимое, для блогов/новостных сайтов и тп задач джанга отлично подходит, для каких-то сложных веб-инструментов, сервисов вот не очень.
Поэтому кроме джанги лучше что-то ещё знать для мелких утилит и серьёзных сервисов.
Ну и хотелось бы всё-таки больше конкретики, что легко сделать не в джанге (крутой запрос на алхимии не в счёт:]),а в джанге - ацкий геморрой.
Saturn
А если учесть что сейчас прогресс движется в сторону Ajax, то Django вообще отстал.
Вот к примеру те же “формы” что упоминал автор, а точнее валидаторы форм. Как блин получить этот form.error используя Ajax когда в ответ приходит уж явный перебор.

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

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

Ещё на тему монолитности джанги и невозможности юзать любые шаблорнизаторы/формы: если взять тот же pyramid, то часто можно встретить, что ряд модулей использует не те шаблонизаторы/формы/орм что в core проекта, смотрится довольно убого.
Saturn
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 во многом нравится но как коснется мелочи, дак сразу начинается “ахтунг”
slav0nic
пока я реального “ахтунга” так и не увидел …
больше похоже на крики людей, которые слабо в теме ;)
kmike
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 ).
zheromo
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>');
            };
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB