python - 用于通用模型的 Django Createview

标签 python django generics modelform

我一直在努力寻找这个,但我无法在任何地方找到它。所以,这里是:

我正在尝试构建一个将通用模型作为参数并为其创建表单的通用类。为此,我使用 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/

相关文章:

python - 使用 Tensorflow 在二元分类中改变准确度值并且不改变损失值

python - 如何旋转 Python 列表以将特定值居中

python - 将 ImageGrab 与 pywin32 的 GetWindowRect 中的 bbox 一起使用

Python-MySQLdb问题: wrong ELF class: ELFCLASS32

ios - 依赖项注入(inject)通用结构,而无需重新指定占位符类型或约束

java - 在mockito中模拟参数化 map

python - pandas-将系列添加到数据框会导致出现 NaN 值

Django 创建对象

python - 在管理中将整数选择值显示为字符(不是整数)

c# - IDictionary<string, string> 或 NameValueCollection