Форум сайта python.su
https://code.djangoproject.com/ticket/361
Собственно 7 лет назад, была такая политика)
Офлайн
Вполне понимаю ТС
На мой взгляд речь как раз и идет не о неких старых тикетах, и о какой-то там политике, а том как начать “нормально” т.е. с удовольствием кодить на продукте который почти не расширяем (созданием темплэйт тегов и т.д., с появлением CBV с эти стало лучше), а про вопрос как кто это делал.
Я конечно понимаю, что если программист глуп, то НУЖНО его заставлять идти правильным путем.
А чемодан иногда не представляется возможным бросить и взять другой, например тебе его дали и на перекладывание вещей в другой нет или времени, или это невозможно по каким то другим причинам.
Офлайн
slav0nicДа, и это печально. Тут должен быть грустно улыбающийся смайлик :)
Собственно 7 лет назад, была такая политика
Офлайн
zheromo
web - понятие растяжимое, для блогов/новостных сайтов и тп задач джанга отлично подходит, для каких-то сложных веб-инструментов, сервисов вот не очень.
Поэтому кроме джанги лучше что-то ещё знать для мелких утилит и серьёзных сервисов.
Ну и хотелось бы всё-таки больше конкретики, что легко сделать не в джанге (крутой запрос на алхимии не в счёт:]),а в джанге - ацкий геморрой.
Офлайн
А если учесть что сейчас прогресс движется в сторону Ajax, то Django вообще отстал.
Вот к примеру те же “формы” что упоминал автор, а точнее валидаторы форм. Как блин получить этот form.error используя Ajax когда в ответ приходит уж явный перебор.
Буквально недавно начал изучать Ыии (PHP), вот интересно кто имел дело с этим фреймворком скажите в чем различие (+ или -).Мне лично начинает нравится… , очень гибкий framework.
А еще больше хотел бы услышать мнение от создателя php.ru (написан на Ыии :), ) который мне не раз помогал на этом форуме.
Офлайн
http://www.dajaxproject.com/ например
или банально через jquery.form.js
как бы плохой пример кривости в джанге, другие фрейморки тут вряд ли в более выигрышном положении %)
Ещё на тему монолитности джанги и невозможности юзать любые шаблорнизаторы/формы: если взять тот же pyramid, то часто можно встретить, что ряд модулей использует не те шаблонизаторы/формы/орм что в core проекта, смотрится довольно убого.
Отредактировано slav0nic (Окт. 30, 2012 23:10:07)
Офлайн
slav0nic кстати, буквально вчера же просматривал именно этот “моющий” сайт :)
Мне как то проще так:
def count_comments(request): if request.method == 'POST': return HttpResponse(Comment.objects.count())
Отредактировано Saturn (Окт. 30, 2012 23:56:09)
Офлайн
пока я реального “ахтунга” так и не увидел …
больше похоже на крики людей, которые слабо в теме ;)
Офлайн
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'}), }
pip install django-widget-tweaks
{% load widget_tweaks %} {% render_field form.income_date class="calendar" %}
Офлайн
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], ))
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>'); };
Офлайн