我有 3 个型号,它们如下class Table(models.Model): waiter = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='restaurant_table') table_no = models.IntegerField() objects = TableManager()class Order(models.Model): customer = models.ForeignKey(Customer, on_delete=models.CASCADE) food = models.ManyToManyField(OrderFood, related_name='ordered_food') order_status = models.ForeignKey(OrderStatus, on_delete=models.CASCADE) table = models.ForeignKey(Table, on_delete=models.CASCADE) datetime = models.DateTimeField(default=now)class OrderStatus(models.Model): CHOOSE = ( ('Received', 'Received'), ('Cooking', 'Cooking'), ('WaiterHand', 'In Waiter Hand'), ('Delivered', 'Delivered'), ('Paid', 'Payment Completed'), ('Rejected', 'Rejected') ) status = models.CharField(max_length=30, null=False, blank=False, choices=CHOOSE) created_at = models.DateTimeField(auto_now=True) updated_at = models.DateTimeField()实际上我正在创建一个餐厅管理系统。因此,这里的餐厅有与一个或多个服务员相关的桌子。但我需要一个新功能,即表状态。我的意思是,当订单与餐桌主动关联时,意味着该餐桌已被预订。实际上这不是问题,因为我可以通过多种方式做到这一点。一种方法是我将计算与此表关联的活动订单,如果我发现任何活动订单,我将返回该表已预订。另一种方法是我将在表中添加一个额外的字段,该字段是一个标志。桌子的标志存储状态是否已预订,我的意思是布尔字段。但我的问题不是解决方案。我的问题是哪个更好或者还有其他好的解决方案。请简要解释一下我想知道哪种解决方案更好以及为什么。
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
您可以在模板中放置可以直接与任何表对象一起使用的@property函数。class Table
@property
def check_table_status(self):
status = 'Not Booked'
if self.order_set.all().exists():
status = 'Booked'
return status
- 1 回答
- 0 关注
- 63 浏览
添加回答
举报
0/150
提交
取消