是否可以使用 URL 参数编辑 Django CBV 中的 'field' 类变量?



我试图使用CreateView来创建一个配置文件对象。但是,根据配置文件的类型,我希望显示一组不同的字段。现在我正在通过url传递配置文件的类型。

我该如何访问这个参数来过滤字段的类型?我知道如何在CBV中的get()函数中这样做,但不知道在类本身的主体中。我也不知道是否有合适的函数可以做到这一点,并且无法在文档中找到解决方案。

提前感谢您的任何帮助,如果这个问题有一个明显的答案,我很抱歉,我错过了。

您需要重写一些方法。可行的方法有get_form_classget_form等。尝试重写get_form:

class MyView(CreateView):
model = SomeModel
fields = None

def get_form(self):
self.fields = ['field1', 'field2'] # set this according to your conditions
# the keyword arguments passed to the view can be accessed by using self.kwargs.get('<key_name>')
return super().get_form()

最新更新