0
同じページにCreateViewとUpdateViewフォームを作成したいが、同じページにある編集ボタンが押されたときにのみ更新フォームが表示される。 updateViewのURLがボタンにリンクされている場合、updateビュー(つまり同じページ)にリダイレクトされ、updateViewをボタンにリンクしていない場合、フォームは自動更新されません。その解決策は何ですか?djangoでupdateviewフォームとテンプレートフォームをリンクする
class stock_add_view(CreateView):
model = part_stock
fields = ['part_id','entry_date','supplier','amount','remaining']
success_url = reverse_lazy('parts:part_list')
class stock_update_view(UpdateView):
model = part_stock
fields = ['part_id','entry_date','supplier','amount','remaining']
success_url = reverse_lazy('parts:part_list')
template_name = 'part_detail.html'
URLパターン
url(r'^add_stock$',views.stock_add_view.as_view(),name='stock_add_view'),
url(r'^update_stock/(?P<pk>\d+)/$',views.stock_update_view.as_view(),name='stock_update_view'),
テンプレート:part_detail.html
<script type="text/javascript">
$(function() {
$('.edit_btn').on('click',pop_up);
function pop_up() {
alert("hi")
$('#update_form').show();
}
})
</script>
<div>//add form
<form method="post" action="{% url 'parts:stock_add_view'%}">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
</div>
<div style="display: none;" id="update_form">//update form
<form method="post" action="{% url 'parts:stock_update_view' stock.id%}">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
</div>
//edit button
<a href=""> <button type="button" class="edit_btn" data-id="{{ stock.id }}">Edit</button></a>