「Effective django」チュートリアルのセットアップ例は、次のように機能します。
- contact_list ページで、ユーザーは「削除」をクリックします。
- DeleteView は、削除の確認ページにリダイレクトされます。
- ユーザーが確認 (またはキャンセル) ボタンをクリックすると、contacts_list ページにリダイレクトされます。
代わりにやりたいことは次のとおりです。
- 「削除」をクリックして、ブートストラップモーダルをポップアップします
- モーダルで削除(またはキャンセル)を確認
- contact_list ページに戻ります。
- さらに、編集と作成についても同じことをしたいと思います。削除は、最も単純なケースのように思えました。
同様のトピックを調べてみると、モーダルは実際にはリンク (/view) を呼び出さず、jquery/ajax で問題を解決できるはずです。概念とベスト プラクティスについては、まだ少しわかりません。任意の洞察をいただければ幸いです。
url.py
url(r'^$', contacts.views.ContactListView.as_view(), name='contacts-list',),
url(r'^new$', cts.views.CreateContactView.as_view(), name='contacts-new',),
url(r'^edit/(?P<pk>\d+)$', contacts.views.UpdateContactView.as_view(), name='contacts-edit',),
url(r'^delete/(?P<pk>\d+)$', contacts.views.DeleteContactView.as_view(), name='contacts-delete',),
url(r'^detail/(?P<pk>\d+)$', contacts.views.ContactDetailView.as_view(), name='contacts-view',),
ビュー.py
class ContactListView(ListView):
model = Contact
template_name = 'contact_list.html'
class DeleteContactView(DeleteView):
model = Contact
template_name = 'delete_contact.html'
def get_success_url(self):
return reverse('contacts-list')
contact_list.html
{% for contact in object_list %}
<li><h3>{{ contact.first_name }} </h3>
<a href="{% url "contacts-edit" pk=contact.id %}">edit</a>
<a href="{% url "contacts-delete" pk=contact.id %}">delete</a>
</li>
{% endfor %}