2017-05-05 38 views
0

我試圖用Django構建一個餐廳管理應用程序,我的客戶模型有一個名稱,訂單,一個表整數字段和一個is_active布爾字段。我有一個工作表單,它創建一個Customer obj並將它的命令分配給逗號,然後我使用模型方法呈現它。客戶模型到一個在Django中有價格值的訂單模型

我想要做的是在客戶字段中有多個訂單字段,然後某個訂單字段應直接鏈接到固定價格。

我對Django相當陌生,所以這裏是我最好的解釋:當你創建一個客戶對象時,你應該看到一個名字段,多個訂單字段,它們也應該有一些數量字段,鏈接到固定價格,因爲我將使用它來計算總價格:fixed_price_of_order乘以quantity_ordered。

我試圖找到類似的東西,但我還沒有真正能夠。 Django可能不是最好的工具,但這是我必須使用的。

編輯 這裏是我有今天,有一點更比昨天,又名我可以手動鍵入命令,但是這容易出錯和不完全使用樂趣。

class Item(models.Model): 
    name = models.CharField(max_length=120) 
    price = models.IntegerField(default=0, unique=False) 

    def __str__(self): 
     return self.name 

class Customer(models.Model): 
    name = models.CharField(blank=False, max_length=120, unique=True) 
    order = models.ManyToManyField(Item) 
    table = models.IntegerField(blank=True) 
    pub_date = models.DateTimeField() 
    is_active = models.BooleanField(default=True) 
    def __str__(self): 
     return self.name 

現在我需要的是跟蹤量的方式,我想增加一個數量字段項,但是這是行不通的,因爲不是每個訂單都有項目的數量相同。我查了一下,看到了一些關於桌子的東西,無法理解那是什麼或者使用它的方法。我現在可以進入手動輸入欄。

回答

0

據我瞭解,你需要3個表, 客戶,特定客戶, 項目的細節,對於一個特定的項目, 秩序,爲每一位客戶的每一個訂單做。

下面是一個例子:

class Item(models.Model): 
    name = ........... 
    price = .......... 

class Customer(models.Model): 
    name = ......... 
    .......... 

class Order(models.Model): 
    customer = models.ForeignKey(Customer, related_name='orders', null=True, blank=True) 
    item = models.ForeignKey(Item, related_name='orders', null=True, blank=True) 
    order_date = models.DateField(auto_now=True) 
    is_cancelled = models.BooleanField(default=False) 
    is_delivered = models.BooleanField(default=False) 
    quantity = models.IntegerField() 

通過做這樣的,你可以有一個單一的與客戶相關的單個或多個項目多個訂單。數量字段可以添加到訂單表中,以便每個訂單可以有自己的數量。

這正是我想如何可以,希望你有你在找什麼。

+0

這很好,不得不移動一些東西,但非常感謝。我正在考慮這樣做,但無法弄清楚如何實現它。學到了新東西! –

+0

如果您滿意,那麼您可以幫我一個忙,並選擇標記答案嗎? – zaidfazil

+0

完成,對不起;我以爲我已經做到了。 –

0

您應該閱讀有關django Widgets,然後使用SelectMultiple小部件。

Btw。請粘貼你的代碼。幫助會容易得多。

+0

我無法發佈我的代碼,因爲我現在躺在牀上質疑存在。明天我會用我的代碼更新我的這個。非常感謝,這似乎是可行的! –

+0

更新了代碼和進度,仍然不太存在雖然>。< –

相關問題