如何在Django中接受和拒绝订单
我想接受和拒绝订单。如果订单将接受它显示将保存在数据库中,如果订单被拒绝它显示将删除,但我正在尝试,但什么也没有发生 View.py如何在Django中接受和拒绝订单,django,django-views,Django,Django Views,我想接受和拒绝订单。如果订单将接受它显示将保存在数据库中,如果订单被拒绝它显示将删除,但我正在尝试,但什么也没有发生 View.py class OrderDecision_View(TemplateView): template_name = "purchase/allOrders.html" def get(self, request, *args, **kwargs): allOrders = Order.objects.all()
class OrderDecision_View(TemplateView):
template_name = "purchase/allOrders.html"
def get(self, request, *args, **kwargs):
allOrders = Order.objects.all()
args = {"allOrders": allOrders}
return render(request, self.template_name, args)
def post(self, request):
orderId = self.request.GET.get("order_id")
statusAccept = self.request.GET.get("acceptButton")
statusReject = self.request.GET.get("rejectButton")
if statusAccept:
try:
orderDecision = OrderRequest(
order_id=orderId,
order_status=statusAccept,
)
orderDecision.save()
return redirect("orderDecision")
except Exception as e:
return HttpResponse("failed{}".format(e))
if statusReject:
remove = Order.objects.get(pk=statusReject.id)
delete(remove)
模板
{% block content %}
{% for allorder in allOrders %}
{{ allorder.id }}
{{ allorder.orderProduct.product.name }}
{{ allorder.orderProduct.quantity }}
<button type="submit" name="acceptButton" value="accept"><a href="{% url 'orderDecision' %}?order_id={{ allorder.id }}">Accept</a></button>
<button type="submit" name="rejectButton" value="reject"><a href="{% url 'orderDecision'%}?order_id={{ allorder.id }}"> Reject</a></button>
{% endfor %}
{% endblock % }
{%block content%}
{allOrders%中allorder的百分比}
{{allorder.id}
{{allorder.orderProduct.product.name}
{{allorder.orderProduct.quantity}
{%endfor%}
{%endblock%}
将链接包装到按钮中并没有什么明智之举
<form method="POST" action="{% url 'orderDecision' %}?order_id={{ allorder.id }}">
{% csrf_token %}
<button type="submit" name="action" value="accept">Accept</button>
<button type="submit" name="action" value="reject">Reject</button>
</form>
在Python代码中
不过,您可能需要使用
UpdateView
,以避免在检索这些订单对象时遇到一些麻烦。请使用适当的缩进来发布代码。我会更新您可能需要的代码order.objects.get(pk=orderId).delete()
在那里。您需要注释(Count('orderrequest\u set')。过滤器(orderrequest\u set\u count=0)
某种程度上是对queryset的添加,但这本身就是一个不同的问题。所以我为这个问题单独发布了一个问题?这将是一个好主意,是的
statusAccept = self.request.POST.get("action") == "accept"
statusReject = self.request.POST.get("action") == "reject"