Django形式前缀与基于类的通用视图

时间:2011-09-01 18:31:20

标签: django django-forms django-generic-views

如何在Django 1.3中使用新的基于类的通用视图设置表单前缀关键字?设置前缀可防止呈现的HTML中出现重复的ID。对于表单API,这是记录here

由于我使用AJAX加载了几种不同的表单,因此我遇到了重复标记的问题。

2 个答案:

答案 0 :(得分:7)

我看到了你的问题!您正在尝试使用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放入urlconf中MyFormView.as_view的参数中。

正如我所说,我没有尝试过,但它可能值得一试 - 让我知道它是否有效!

答案 1 :(得分:0)

我在django中打开了一张票,附带了一个补丁,修改了FormMixin,以使FormView的行为符合你的意愿。

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