現在、UpdateViewとフィールド内のデータを編集するボタンがありますが、何らかの理由で編集ボタンをクリックしてもデータが表示されません。それは私がアドレスバーに移動し、Enterキーを押すと、基本的に同じページを要求しない限り、空のフィールドの束を示しています。すべてのデータが表示されます。フォームのDjangoデータがPOSTで表示されない
動作しません私は、[編集]をクリックし、私はアドレスバーに入力した押したときに動作します:
/inventory/update/7/
views.py
class ProductUpdate(UpdateView):
model = Product
fields = [
'manufacturer',
'part_number',
'description',
'vendor',
'upc',
'stock_quantity',
'unit_cost',
'sale_price',
]
urls.py
# /inventory/update/<pk>
url(r'update/(?P<pk>[0-9]+)/$', views.ProductUpdate.as_view(), name='product-update'),
インデックス.html
<div class="col-sm-6">
<ul class="list-group">
{% for product in all_products %}
<li class="list-group-item">
<a href="{% url 'inventory:product_detail' product.id %}"><span style="font-size: 1.6em;">{{ product.manufacturer }}: {{ product.part_number }}</span></a>
<form action="{% url 'inventory:product-delete' product.id %}" method="post" style="display: inline">
{% csrf_token %}
<button type="submit" class="btn btn-danger btn-sm float-right" style="margin-left: 10px; margin-top: 4px;">Delete</button>
</form>
<form action="{% url 'inventory:product-update' product.id %}" method="post" style="display: inline">
{% csrf_token %}
<button type="submit" class="btn btn-warning btn-sm float-right" style="margin-top: 4px;">Edit</button>
</form>
</li>
{% endfor %}
</ul>
</div>
POST
ではなく、更新フォームの方法をGET
に変更すると、ボタンをクリックすると機能しますが、アドレスバーがこのように表示されます。
/inventory/update/7/?csrfmiddlewaretoken=34WWjKDIDsNpZdmEmef9cr3tCoCO0V7jO3uks5qXFzSVKu1uAklqUA3ihaGBGaRK
私はまたPOST
で{{ form.as_p }}
を使用してみましたが、それは、データがいずれかの表示しませんでした。の私が理解できるものから、
私は気づいていませんでした!これは完全に動作し、私の質問への答えです!私はフォームを使ってデータを要求する必要があると思っていました... –