如何在Django 1.3中使用新的基于类的通用视图设置表单前缀关键字?设置前缀可防止呈现的HTML中出现重复的ID。对于表单API,这是记录here。
由于我使用AJAX加载了几种不同的表单,因此我遇到了重复标记的问题。
答案 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的行为符合你的意愿。