Django创建订单表单模型设计

时间:2014-10-21 21:42:04

标签: django django-models

我正在创建一个模型,用户可以在其中添加购物车中的商品,创建附加到用户的订单。我想知道我是否以正确的方式解决这个问题。这似乎是一个相当常见的数据库设计。我是否需要与发票表更松散的联系,该表将存储问题列表,然后让订单将发票号与用户连接?我是Django的新手,所以任何关于更好的建模系统的建议都会受到重视。

到目前为止,这是我的模型。这暂时适用,但一旦添加购物车功能,它可能不会像它需要的那样复杂。

    REGION_CHOICES = (
    ('D', 'Domestic'),
    ('I', 'International')
)

class Source(models.Model):
    source = models.CharField(max_length=100)

    def __unicode__(self):
        return self.source

class Role(models.Model):
    role = models.CharField(max_length=100)

    def __unicode__(self):
        return self.role

class Subscriber(models.Model):
    name = models.CharField(max_length=200)
    address_line_one = models.CharField(max_length=200)
    address_line_two = models.CharField(max_length=200, null=True, blank=True)
    city = models.CharField(max_length=200)
    state_province = models.CharField(max_length=2, null=True, blank=True)
    zip = models.CharField(max_length=25)
    #is_international = models.BooleanField(default=False, help_text="hello")
    region = models.CharField(max_length=1, choices=REGION_CHOICES)
    source = models.ForeignKey(Source)
    role = models.ForeignKey(Role)

    def __unicode__(self):
        return self.name

class Issue(models.Model):
    Volume = models.DecimalField(max_digits=3, decimal_places=1)

    def __unicode__(self):
        return unicode(self.Volume)

class Order(models.Model):
    subscriber = models.ForeignKey(Subscriber)
    issue = models.ForeignKey(Issue)

    def __unicode__(self):
        return unicode(self.subscriber)

1 个答案:

答案 0 :(得分:0)

一种有效的方法是让您的应用使用最少的字段集合,然后在需要时添加新的字段。

django 1.7, migrations原生且易于使用。只要您以正确的方式使用系统,就可以轻松地添加表和关系。