我正在开发一个餐厅应用程序(并且是 Django/Python 的新手)。我想要一个父类 Dish,其中包含一些计数器或 ID,该计数器或 ID 会随着 Dish 子类的每个实例而递增。这些实例是披萨、意大利面等具有不同特征和关系的菜肴。我正在尝试Dish具体说明,因为在这种情况下,我认为我只需访问Dish的 PK,这将为每个菜单项提供一个 Dish-ID。但是,我不知道如何正确修复我遇到的错误:You are trying to add a non-nullable field 'pasta_ptr'。
以下是相关代码片段:
class Dish(models.Model):
pass # should automatically generate PK, right?
class Pasta(Dish):
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}"
class Pizza(Dish):
sizestyle = models.CharField(max_length=4, choices=SIZESTYLE_CHOICES, default=SMALL_REGULAR)
topping_count = models.IntegerField(default=0, validators=[MaxValueValidator(5), MinValueValidator(0)])
price = models.DecimalField(max_digits=6, decimal_places=2)
def __str__(self):
return f"Price for {self.sizestyle} pizza with {self.topping_count} toppings: ${self.price}"
class Sub(Dish): …Run Code Online (Sandbox Code Playgroud)