我有一个Django项目,其中我有一个Django CreateView
类的子视图。此视图用于将文件上载到服务器,并使用我创建的UploadedFile
模型。 UploadedFile
也需要与项目相关联,该项目在ForeignKey
模型中存储为名为project
的{{1}}。
项目ID作为网址的一部分传递:UploadedFile
由于(r'^projects/(?P<proj_key>\d+)/$', UploadedFileCreateView.as_view(), {}, 'upload-new')
实际上不是表单字段,因此我知道我需要使用project
将其排除;然而,即使在我这样做之后,django也从未进入ModelForm
方法(如果我在其中放入日志记录调用,它将永远不会写入日志,尽管日志记录工作正常)。我猜测form_valid
是罪魁祸首,因为在我加入之前,我可以告诉它有效。我不明白为什么即使在我排除{django之后django也不认为该表格有效{1}}。
这是我的ForeignKey
定义:
project
以下是我的观点定义:
model
答案 0 :(得分:1)
我看到两个可能的问题:
1)表单关键字为exclude
,而不是excludes
。
通常建议您明确列出要包含的fields
,因此您不会意外地公开以后可能添加的任何字段,但exclude
会有效。
2)您实际上并未在视图中使用自定义表单类。将form_class
属性设置为UploadedFileForm
。