2016-03-02 105 views
1

在我的Django项目我有目录的产品,有怎样的模样在models.pyDjango的 - 如何在视图中获得当前项目

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。如果你能帮助我,我会很感激。

+2

但你已经在做了在ProductDetailView。那有什么问题? –

+0

我很抱歉。我没有得到,我做到了。但现在我做到了 –

回答

1

你只需要在同一个过程:

定义一个新的URL订单:

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) 
相关问题