简体   繁体   English

错误models.py Django

[英]Error models.py Django

I have an error when creating migrations in django在 django 中创建迁移时出现错误

models.py模型.py

class StateBuyers(models.Model):
    name = models.CharField(max_length=100)

    def __unicode__(self):
        return self.name

    class Meta:
        db_table = "states"

class CountiesBuyers (models.Model):
    state = models.ForeignKey(StateBuyers, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)

    def __unicode__(self):
        return self.name

    class Meta:
        db_table = "counties"


class CityBuyers (models.Model):
    state = models.ForeignKey(StateBuyers, on_delete=models.CASCADE)
    county = models.ForeignKey(CountiesBuyers, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)

    def __unicode__(self):
        return self.name

    class Meta:
        db_table = "cities"

maybe here I have the error create one instance of many也许在这里我有错误创建多个实例

class Buyers(models.Model):
    name = models.CharField(max_length= 50)
    state = models.ForeignKey(StateBuyers, related_name="Buyers", null=True, on_delete=models.CASCADE)
    city = models.ForeignKey(CityBuyers, related_name="Buyers", null=True, on_delete=models.CASCADE)
    phonenumber = models.CharField(max_length=15)
    email = models.EmailField (max_length= 50)
    notes = models.CharField(max_length=200)

    def __unicode__(self):
        return self.name

    class Meta:
        db_table = "buyers"

At the time of migration throws this error Any ideas ?.在迁移时抛出此错误任何想法?。

migration error迁移错误

slightly off-topic, but why do you not follow the conventions?有点题外话,但你为什么不遵循惯例?

  • simple model names using singular form使用单数形式的简单模型名称
  • no need for extra parameters if they are same as defaults如果它们与默认值相同,则不需要额外的参数
  • why duplicate State if there is State for county?如果县有州,为什么要重复州? any performance gains?任何性能提升?
class NameAsReprMixin(object):
    def __unicode__(self):
        return self.name

class State(models.Model, NameAsReprMixin):
    name = models.CharField(max_length=100)    


class County(models.Model, NameAsReprMixin):
    state = models.ForeignKey(State)
    name = models.CharField(max_length=100)


class City(models.Model, NameAsReprMixin):
    county = models.ForeignKey(County)
    name = models.CharField(max_length=100)


class Buyer(models.Model, NameAsReprMixin):
    name = models.CharField(max_length= 50)
    state = models.ForeignKey(State, related_name="buyers", null=True)
    city = models.ForeignKey(City, related_name="buyers", null=True)
    phone_number = models.CharField(max_length=15)
    email = models.EmailField(max_length= 50)
    notes = models.CharField(max_length=200)

then:然后:

# all city buyers
City.object.get(...).buyers.all()

# all state byuers
State.object.get(...).buyers.all()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM