Префикс формы Django с общим представлением на основе классов - PullRequest
2 голосов
/ 01 сентября 2011

Как мне задать ключевое слово префикса формы с помощью новых базовых представлений на основе классов в Django 1.3? Установка префикса предотвращает дублирование идентификатора в отображаемом HTML. Это задокументировано здесь для API форм.

Поскольку у меня есть несколько различных форм, загруженных с использованием AJAX, у меня возникают проблемы с дублирующимися тегами.

Ответы [ 2 ]

7 голосов
/ 02 сентября 2011

Я вижу твою проблему!Вы пытаетесь использовать FormView, что позволяет указать form_class, но не префикс.

Я не пробовал этого, но я предлагаю использовать подклассы FormView, или что вы используетеи переопределив метод get_form_kwargs для добавления префикса.

Вы можете сделать что-то вроде этого:

class MyFormView(FormView):
    form_prefix = None

    def get_form_kwargs(self):
        kwargs = super(FormView, self).get_form_kwargs()
        if self.form_prefix:
            kwargs.update({'prefix': self.form_prefix})
        return kwargs

Тогда, я думаю, вы сможете поставить form_prefix в аргументах MyFormView.as_view в вашем urlconf.

Как я уже сказал, я не пробовал этого, но, возможно, стоит попробовать - дайте мне знать, если это работает!

0 голосов
/ 29 августа 2012

Я открыл тикет в django с прикрепленным патчем, который изменяет FormMixin, чтобы заставить FormView вести себя так, как вы хотите.

https://code.djangoproject.com/ticket/18872

...