Я работаю над ресторанным приложением (и новым для 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}"