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

AgD*_*ude 2 django django-forms django-generic-views

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

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

Dun*_*kes 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
Run Code Online (Sandbox Code Playgroud)

然后,我想,你将能够在你的urlconf form_prefix中输入参数MyFormView.as_view.

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