2016-03-02 41 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) 
相關問題