Django - 如何在视图中获取当前项目

时间:2016-03-02 14:56:59

标签: python django

在我的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。如果你能帮助我,我将感激不尽。

1 个答案:

答案 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)