我具有此视图来显示以前填充的数据,这些数据仅在管理面板中填充:
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>
我的更新页面按预期工作,显示了与所选对象相关的每个值,但是当我提交表单时,模型没有改变。发生什么事而不更新值?
答案 0 :(得分:2)
您正在将表单提交到product_list
视图-您应该将其提交到更新视图。
取决于您的URL,该表单应类似于:
<form method="post" action="{% url 'client:update_product' product_list.pk %}">
答案 1 :(得分:0)
毕竟,我从表单中删除了该操作,并将变量success_url = reverse_lazy('client:product_list')
添加到了UpdateView中。那解决了问题。