如何解决如何在 Djnago 的相同网址中添加两个视图?
我使用 Django 框架作为 后端,Postgressql 用于 DB 和 HTML,用于前端的 CSS、Javascript。我正在制作一个网站,功能如下。
- 用户点击添加产品(点击“选择产品”按钮)
(Index.html)
- 用户被定向到下一页
(listitem.html)
,用户可以在其中选择产品。 - 从
(listitem.html)
中选择产品后(点击“添加产品”按钮) - 在该用户重定向到
(index.html)
的主页后,选择的产品显示给用户。
现在所有代码都可以正常工作。数据被正确获取,但不在我想要的 URL 链接上。
urls.py
urlpatterns = [
path('base/',views.base,name='base'),path('index/',views.build,name='index'),path("add-to-cart-<int:pro_id>/",AddToCartView.as_view(),name="addtocart"),
path("my-cart/",MyCartView.as_view(),name="mycart"),
]
views.py
class AddToCartView(TemplateView):
template_name = "status.html"
def get_context_data(self,**kwargs):
context = super().get_context_data(**kwargs)
# get product id from requested url
product_id = self.kwargs['pro_id']
# get product
product_obj = Product.objects.get(id = product_id)
# check if cart exists
cart_id = self.request.session.get("cart_id",None)
if cart_id:
cart_obj = Cart.objects.get(id = cart_id)
this_product_in_cart = cart_obj.cartproduct_set.filter(product = product_obj)
if this_product_in_cart.exists():
cartproduct = this_product_in_cart.last()
cartproduct.quantity += 1
cartproduct.save()
cart_obj.save()
else:
cartproduct = CartProduct.objects.create(cart = cart_obj,product = product_obj,quantity = 1)
cart_obj.save()
else:
cart_obj = Cart.objects.create(total=0)
self.request.session['cart_id'] = cart_obj.id
cartproduct = CartProduct.objects.create(cart = cart_obj,quantity = 1)
cart_obj.save()
return context
class MyCartView(TemplateView):
template_name = "index.html"
def get_context_data(self,**kwargs):
context = super().get_context_data(**kwargs)
cart_id = self.request.session.get("cart_id",None)
if cart_id:
cart = Cart.objects.get(id=cart_id)
else:
cart = None
context['cart'] = cart
return context
urls.py 中的突出显示部分显示 my-cart
它显示了所有购物车价值,但不在 index
网址上。需要做出哪些改变。需要建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。