我有 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 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
您也可以在模板中放置可以直接與任何表對象一起使用的@property函數。class Table
@property
def check_table_status(self):
status = 'Not Booked'
if self.order_set.all().exists():
status = 'Booked'
return status
添加回答
舉報
0/150
提交
取消