[英]How to include an object from another model in a generic Django CreateView?
[英]Django Createview for generic Model
我一直在努力尋找這個,我無法在任何地方找到它。 所以,在這里:
我正在嘗試構建一個泛型類,它將通用模型作為參數並為其創建表單。 為此,我使用Django的ModelForm和CreateView類。 這個的主要目標是,當我需要創建一個新表單時,我只是聲明一個傳遞Model名稱的新URL。
url(r'^create', GenericCreate(model=Author).as_view(), name='create'),
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此方法僅在視圖類上可用。
先感謝您!
您不應該創建視圖類的實例, as_view
將為您執行此操作。
您通常會調用ViewClass.as_view()
,而不是ViewClass().as_view()
。
此外, CreateView
已將model
作為參數,因此您應將您的URL定義為:
url(r'^create', CreateView.as_view(model=Author), name='create'),
要正確了解它的工作原理,請查看CreateView上的as_view
方法 。 (完全披露 - 我建立了ccbv.co.uk
)
to_modelform
提供了答案,但請注意您的to_modelform
函數是不必要的。 CreateView與模型或模型實例完美匹配,而不是表單,請參閱文檔 。
我也有這個錯誤( TypeError: 'instance' is an invalid keyword argument for this function
); 對我而言,它與定義Model而不是form_class
中的Form form_class
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.