2017-01-26 9 views
2

私は基本的なDjangoの開発を学んでおり、私が作成したいくつかの投稿で簡単なブログアプリを作成しています。私のホームページには、すべての投稿を繰り返して表示するこのコードが含まれています。投稿を編集するためのDjangoのブートストラップモーダルビューを開く

{% for post in all_posts %} 
    <div class="post-card"> 
     {{post.title}} 
     {{post.description}} 
     <a data-toggle="modal" data-target="#postEditModal"> 
     Edit Post 
     </a> 
    </div> 
{% endfor %} 

私はブートストラップデータ・ターゲット・メソッドにリンクし、私の目標がために、「編集後」のリンクをクリックすることができることです以下

<div id=#postEditModal class="modal fade" style="overflow: scroll;" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    {{editpostform}} 
</div> 

を示し#postEditModalを持っています個々の投稿は投稿のためにスラッグにリダイレクトし、同じページの上にすべてを表示する必要があります。そこから私の{{editpostform}}を使って投稿を編集できるはずです。モーダルエリアの外側をクリックすると、同じページに戻ります。

私はpost.get_absolute_url{% url 'single_post' post.id %}のような多くのことを試しましたが、これまでのところ正しく動作していません。私はあるレベルのJavascript/AJAXが関わっていると仮定していますが、どこから始めるべきかわかりません。

+0

なぜあなたは別のURLにリダイレクトしたいですか?ユーザーが投稿の編集をクリックして更新を行うことができるビューにフォームを投稿すると、投稿の詳細をモーダルフォームで取得できます。 –

+0

私が特定の投稿URLにリダイレクトしたいのは、最終的に私はモーダル内の私のブログ投稿を閲覧して終了できる「詳細モーダル」ビューを追加したいからです。 Pinterestモーダルビューは、私が探している機能をシミュレートします。 – Viji123

答えて

1

複数のmodalsを同じidで作成していて、すべてのリンクが同じモーダルである(data-target)という点は一意ではありません。

簡単な解決策は、モーダルとリンクに投稿IDを追加することです。

<div id="#postEditModal{{ post.id }}" class="modal fade" style="overflow: scroll;" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    {{editpostform}} 
</div> 

をそして、このようなリンクを変更します:これを試してみてください

<a data-toggle="modal" data-target="#postEditModal{{ post.id }}">Edit Post</a> 
+0

#postEditModal {{post.id}}を追加すると、私のリンクが壊れます。 {{post.id}}がなければ、モーダルはうまくいきます。 – Viji123

+1

その場合、あなたは空のフォームを開いていますか?必要なものが各投稿を編集する場合は、ajaxを使用してモーダルを読み込み、選択した投稿データでフォームに入力する必要があります。 – afilardo

+0

チュートリアルがありますか、またはAjaxを使用してモーダルを読み込んでフォームに個々の投稿情報を入力する方法を知りませんか?私はまた、 "詳細ビュー"を持って、post.titleとpost.descriptionを表示したいと思っています。これが、個々のポストスラッグにリダイレクトする方が簡単だと思った理由です。 – Viji123

関連する問題