Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django创建订单模型设计_Django_Django Models - Fatal编程技术网

Django创建订单模型设计

Django创建订单模型设计,django,django-models,Django,Django Models,我正在创建一个模型,在这个模型中,用户可以从购物车添加物品,创建附加到用户的订单。我想知道我的做法是否正确。这似乎是一种相当常见的数据库设计。我是否需要一个带有发票表的松耦合,该发票表将存储问题列表,然后将订单与用户的发票号连接起来?我是Django的新手,所以如果您对更好的建模系统有任何建议,我将不胜感激 这是到目前为止我的模型。这在目前是可行的,但一旦添加了购物车功能,它可能就不会像需要的那样复杂了 REGION_CHOICES = ( ('D', 'Domestic'),

我正在创建一个模型,在这个模型中,用户可以从购物车添加物品,创建附加到用户的订单。我想知道我的做法是否正确。这似乎是一种相当常见的数据库设计。我是否需要一个带有发票表的松耦合,该发票表将存储问题列表,然后将订单与用户的发票号连接起来?我是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)

一个有效的方法是让你的应用程序使用最少的字段集,然后在需要时添加新的字段

使用时,它们是本地的,易于使用。只要正确使用系统,以后就可以轻松添加表和关系