簡體   English   中英

Django不使用UpdateView更新

[英]Django does not update with UpdateView

我有此視圖來顯示以前填充的數據,這些數據僅在管理面板中填充:

from .models import (Token,
                     Sell,
                     LogisticCost,
                     IncomeCost,
                     FinalPayment,
                     CustomerServiceCost,
                     Fatura)
def product_list(request):
    context = {'product_list': ProductList.objects.filter(client=request.user.id).all(),
               'data_payment': Fatura.objects.all()}
    return render(request, 'Clientes/list_products.html', context)

這是更新這些值的視圖:

class UpdateProduct(UpdateView):
    model = ProductList
    context_object_name = 'product_list'
    template_name = 'Clientes/update_product.html'
    fields = ['name', 'description', 'cost_price', 'sell_price', 'ncm']

我在更新頁面中的表單是:

<form method="post" action="{% url 'client:product_list' %}">
    {% csrf_token %}
    {{ form }}
    <button class="btn btn-inverse" type="submit">Atualizar</button>
</form>

我的更新頁面按預期工作,顯示了與所選對象相關的每個值,但是當我提交表單時,模型沒有改變。 發生什么事而不更新值?

您正在將表單提交到product_list視圖-您應該將其提交到更新視圖。

根據您的URL,該表單應類似於:

<form method="post" action="{% url 'client:update_product' product_list.pk %}">

畢竟,我從表單中刪除了操作,並將變量success_url = reverse_lazy('client:product_list')到了UpdateView中。 那解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM