我有 3 個模型,它們?nèi)缦耤lass 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()實際上我正在創(chuàng)建一個餐廳管理系統(tǒng)。所以在這里,一家餐館的桌子與一個或多個服務(wù)員相關(guān)聯(lián)。但我需要一個新功能,即表狀態(tài)。我的意思是,當(dāng)一個訂單與表積極關(guān)聯(lián)時,這意味著該表已被預(yù)訂。實際上這不是問題,因為我可以通過多種方式做到這一點。一種方法是我將計算與此表關(guān)聯(lián)的活動訂單,如果我發(fā)現(xiàn)任何活動訂單,我將返回該表已預(yù)訂。另一種方法是我將在表中添加一個額外的字段作為標(biāo)志。這個表的標(biāo)志存儲狀態(tài)是否已預(yù)訂我的意思是布爾字段。但我的問題不是解決方案。我的問題是哪個更好,或者還有其他好的解決方案。請簡要解釋一下我想知道哪種解決方案更好以及為什么。
1 回答

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