在我的Django项目中,我有产品目录,在 models.py 中看起来如何:
class Category(models.Model):
category = models.CharField(max_length=15)
description = models.CharField(max_length=1000)
class Product(models.Model):
name = models.CharField(max_length=15)
description = models.CharField(max_length=1000)
category = models.ForeignKey(Category)
这是产品详细信息视图。
def ProductDetailView(request, pk):
productdetail = get_object_or_404(Product, pk=pk)
return render(request, 'product/detail.html', {'productdetail': productdetail})
这是产品详细信息视图的 urls.py :
url(r'^(?P<pk>[0-9]+)/$', views.ProductDetailView, name='detail'),
现在我需要在产品详细信息页面上添加一个订单按钮。当用户单击此按钮时,带有订单的数据必须保存到数据库中,因此我创建了一个新模型:
class Order(models.Model):
order_id = models.AutoField(primary_key=True, unique=True)
customer_name = models.ForeignKey(User)
product = models.ForeignKey(Product)
我在 view.py :
中意识到了这一点user = request.user
r = Order.objects.create(customer_name = user, product = ?)
但我不知道如何保存当前product
。如果你能帮助我,我将感激不尽。
答案 0 :(得分:1)
您只需要相同的过程:
为订单定义新的网址:
url(r'^order/product/(?P<pk>[0-9]+)/$', views.OrderView, name='order'),
pk
param将成为产品的pk。
在你看来:
user = request.user
product = get_object_or_404(Product, pk=pk)