我一直在努力寻找这个,但我无法在任何地方找到它。所以,这里是:
我正在尝试构建一个将通用模型作为参数并为其创建表单的通用类。为此,我使用 Django 的 ModelForm 和 CreateView 类。这样做的主要目标是,当我需要创建一个新表单时,我只需声明一个传递模型名称的新 URL。
urls.py
url(r'^create', GenericCreate(model=Author).as_view(), name='create'),
View .py
class GenericCreate(CreateView):
def __init__(self, model, *args, **kwargs):
super(GenericCreate, self).__init__(*args, **kwargs)
self.form_class = to_modelform(self.model)
to_modelform 是我实现的一个函数,它可以将模型转换为模型形式,并且可以正常工作。
这给了我以下错误:
/create 处的 AttributeError 此方法仅在 View 类上可用。
提前致谢!
最佳答案
你不应该创建 View 类的实例,as_view
会为你做这件事。
您通常会调用 ViewClass.as_view()
,而不是 ViewClass().as_view()
。
此外,CreateView
已经将 model
作为参数,因此您应该将 url 定义为:
url(r'^create', CreateView.as_view(model=Author), name='create'),
要正确了解其工作原理,请查看 as_view
method on CreateView . (完全公开——我构建了 ccbv.co.uk
。)
关于python - 用于通用模型的 Django Createview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25013549/