如何在Django中获取当前项目

时间:2016-02-26 11:35:11

标签: 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.CharField(max_length=20)
   email = models.CharField(max_length=50)
   product = models.ForeignKey(Product)

我从表单中获取此模型的所有数据,但我不知道如何获取当前产品字段。如果你能帮助我,我将感激不尽。

2 个答案:

答案 0 :(得分:1)

您可以将当前商品ID添加到HTML(按模板标签)。例如,作为隐藏表单字段:

<input id="id_current_item_id" name="current_item_id" type="hidden"
    value="{{ current_item.id }}"/>

答案 1 :(得分:0)

尝试

<input name="prouct_id" id="id_product" type="hidden" value="{{product.id}}">

并提交订单。您将获得产品ID。