能够在Django中拥有多个项目

时间:2013-07-31 18:52:07

标签: python django

我正在建立一个系统来跟踪客户订购产品,购买日期,价格等所有订单。

如果我希望能够允许用户购买多个产品......(即5,20,323523)。如何允许用户添加更多产品?

这是我的代码:

class PurchaseOrder(models.Model):
    product = models.CharField(max_length=256)
    vendor = models.CharField(max_length=256)
    dollar_amount = models.FloatField()
    purchase_date = models.DateField()
    notes = models.TextField( null=True, blank= True)

我希望它到哪里

当我在添加页面时:

http://i.imgur.com/u1pu1Gp.png

我可以添加超过1.这是一个外键关系吗?我将如何实施?

2 个答案:

答案 0 :(得分:1)

是的,tutorial说'还要注意“轮询”旁边的“添加另一个”链接。每个与ForeignKey关系的对象都是免费的。'。

就个人而言,我会向用户添加一个外键。解决方案here所说的解决方案:

from django.contrib.auth.models import User
...
user = models.ForeignKey(User)

这样,您就知道哪些产品属于哪些用户。

答案 1 :(得分:1)

您需要在ProductOrder和用户之间添加ForeginKey关系:

from django.contrib.auth.models import User

class PurchaseOrder(models.Model):
   product = models.CharField(max_length=256)
   vendor = models.CharField(max_length=256)
   dollar_amount = models.FloatField()
   purchase_date = models.DateField()
   notes = models.TextField( null=True, blank= True)
   purchased_by = models.ForeignKey(User)

然后,您需要在admin.py中添加自定义Admin类:

class PurchaseAdmin(admin.ModelAdmin):
   list_display = [..., 'purchased_by',...]

它应显示一个组框,允许您将采购订单分配给任何现有用户。