我正在制作一个数字菜单,您可以在这里订购。但是,在正确设置表单和视图时遇到了一些麻烦。
该订单有两个外键。 FKtable是通过GET获得的。但是,FKmenuitem是问题所在。
Menuitem具有FKitem的外键,这意味着通过发布,必须先创建Menuitem对象,然后才能创建Order对象。
我不确定应该如何正确处理视图中的逻辑。
这是图片中的模型。
class Table(models.Model):
number = models.IntegerField(blank=False)
def __str__(self):
return f'Tafel nummer {self.number}'
class Category(models.Model):
category_name = models.CharField(max_length=255)
def __str__(self):
return self.category_name
class Item(models.Model):
item_name = models.CharField(max_length=255)
item_price = models.DecimalField(max_digits=5, decimal_places=2)
item_description = models.TextField(max_length=255)
FKcategory = models.ForeignKey(Category, on_delete=models.CASCADE)
def __str__(self):
return self.item_name
class Menuitem(models.Model):
FKitem = models.ForeignKey(Item, on_delete=models.CASCADE)
quantity = models.IntegerField()
def __str__(self):
return f'{self.FKitem.item_name} - {self.quantity}'
class Order(models.Model):
FKtable = models.ForeignKey(Table, on_delete=models.CASCADE)
FKmenuitem = models.ManyToManyField(Menuitem)
prepped = models.BooleanField(default=False)
delivered = models.BooleanField(default=False)
paid = models.BooleanField(default=False)
def __str__(self):
return f' Bestelling voor {self.FKtable}'