Django ORM: добавить родительский класс и получить доступ к его переменной класса от детей - PullRequest
0 голосов
/ 31 марта 2020

Я работаю над ресторанным приложением (и новым для Django / Python). Я хочу иметь родителя class Dish, который будет содержать некоторый счетчик или идентификатор, который увеличивается для каждого экземпляра дочернего класса Dish. Примерами являются такие блюда, как Pizza, Pasta и др. c с различными характеристиками. Я пытался сделать Dish абстрактным и не абстрактным, но каждый раз сталкивался с разными проблемами.

Это мой класс Di sh (чтобы сделать его абстрактным, я попробовал InheritanceManager (), но там возникли сложности, которые привели меня к мысли, что это излишне для моих простых целей. Не абстракт, продолжал давать мне You are trying to add a non-nullable field 'pasta_ptr', сопровождаемый IntegrityError: UNIQUE constraint failed):

class Dish(models.Model):
  #objects = InheritanceManager()
  counter = models.PositiveIntegerField(default=0)

  class Meta:
        abstract = True

Это пример дочернего класса - я бы хотел, чтобы каждая запись в макаронах получала свой собственный Di sh -ID или счетчик на Меню - как атрибут класса в Python. Как мне получить доступ и реализовать это из дочернего класса? Если Dish не является абстрактным, могу ли я использовать (& access) первичный ключ Di sh, который будет t ie каждый di sh для моего желаемого идентификатора?

class Pasta(Dish):
  #Dish.counter +=1
  name = models.CharField(max_length=64, primary_key=True)
  price = models.DecimalField(max_digits=6, decimal_places=2)

  def __str__(self):
    return f"{self.name}, price: ${self.price}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...