0
私は単純なフォームを使用して請求書(invoice_text)の名前を編集します。変更を送信すると、インデックスページにリダイレクトされます。問題は、インデックスページに古いレコードが表示されていることです。これはFirefoxでのみ可能です。 Internet Explorerは変更を直接表示します。 F5は役立ちますが、もちろん新しい(編集された)情報を表示する必要があります。投稿後に表示が更新されない
forms.py
class InvoiceForm(ModelForm):
class Meta:
model = Invoice
fields = ('Invoice_text',)
views.py
def index(request):
latest_invoice_list = Invoice.objects.order_by('-pub_date')[:5]
context = {'latest_invoice_list': latest_invoice_list}
return render(request, 'invoices/index.html', context)
def invoice_edit(request, pk):
obj = get_object_or_404(Invoice, pk=pk)
if request.method == "POST":
form = InvoiceForm(request.POST, instance=obj)
if form.is_valid():
obj = form.save(commit=False)
obj.Invoice_text = request.POST['Invoice_text']
obj.save()
return HttpResponseRedirect('/invoices/')
else:
form = InvoiceForm(instance=obj)
return render(request, 'polls/edit_Invoice.html', {'form': form})
のindex.htmlテンプレート
{% if latest_invoice_list %}
<ul>
{% for invoice in latest_invoice_list %}
<li><a href="/invoices/{{ invoice.id }}/">{{ invoice.invoice_text }}</a> | <a href="{% url 'invoice_edit' pk=invoice.pk %}">edit</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
@never_cacheデコレータを使用してみてください。https://docs.djangoproject.com/en/1.9/topics/http/decorators/ – e4c5