2017-01-30 14 views
0

私はThesisLinkを提出できるアプリケーションを構築しています。これには、修士論文または博士論文のメタデータが含まれています。論文リンクが公開される前に、査読エディタはフィールドを変更する(例えば、壊れたリンクの場合)か、論文リンクを完全に拒否する必要があります。投稿者は、論文リンクが承認されたとき、特定の変更が加えられたときに拒否されたときに郵送されるべきである。Djangoの追加フィールドを含むUpdateView

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> 

答えて

0

あなたは追加の非モデルフィールドでModelFormを使用してカスタムフォームを作成する必要があり、かつ使用されますそれはform_class属性を使用してUpdateViewにあります。

関連する問題