2

「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 %}
4

1 に答える 1

0

django の DeleteView によって提供される検証ステップを省略する必要があります。わざわざ ajax 呼び出しを送信しないでください。

まず、モーダル フォームを表示する方法を理解します。

次に、フォーム メソッドを POST として宣言し (GET は確認テンプレートを提供します)、アクションをそのままにしておく必要があります。

于 2013-12-13T22:03:14.190 に答える