Ошибка models.py Django

У меня ошибка при создании миграций в Django

models.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"

может быть, здесь у меня есть ошибка создать один экземпляр из многих

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"

Во время миграции выдает эту ошибку. Есть идеи?

ошибка миграции

1 ответ

Решение

Немного не по теме, но почему вы не следуете конвенциям?

  • простые названия моделей с использованием единственного числа
  • нет необходимости в дополнительных параметрах, если они совпадают со значениями по умолчанию
  • зачем дублировать штат если есть штат для округа? какой-либо прирост производительности?
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)

затем:

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

# all state byuers
State.object.get(...).buyers.all()
Другие вопросы по тегам