我正在构建一个应用程序,用户可以在其中提交ThesisLink
,其中包含其硕士或博士论文的元数据。在论文链接发布之前,审查编辑必须有可能更改字段(例如,在链接断开的情况下)或完全拒绝论文链接。提交者应在其论文链接被接受,接受某些更改或被拒绝时邮寄。
我得出结论,我想要某种UpdateView
,其中模型的所有字段都已填写完毕,并准备由审查编辑器编辑。但我也想要不在模型上的字段,例如refusal_reason
或editor_comment
。我想在发生变化时通过邮件通知用户。
如何扩展更新视图以执行此操作?或者我应该完全抛弃UpdateView
并在FormView
之上构建一些内容?
这是我到目前为止所做的:
# urls.py
urlpatterns = [
url(r'^vet_thesislink/(?P<pk>[0-9]+)/$', views.VetThesisLink.as_view(), name='vet_thesislink')
]
# views.py
@method_decorator(permission_required(
'scipost.can_vet_thesislink_requests', raise_exception=True), name='dispatch')
class VetThesisLink(UpdateView):
model = ThesisLink
fields = ['type', 'discipline', 'domain', 'subject_area',
'title', 'author', 'supervisor', 'institution',
'defense_date', 'pub_link', 'abstract']
template_name = "theses/vet_thesislink.html"
在模板中:
# templates/theses/vet_thesislink.html
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update" />
</form>