2013-02-04 50 views
1

使用Django創建結帳系統的最佳方式是跟蹤結帳/簽入歷史記錄嗎?Django結帳模型

我爲inventory/models.py

from django.db import models 

class Groups(models.Model): 
    name = models.CharField(max_length=200) 

    def __unicode__(self): 
     return self.name 

class Inventory(models.Model): 
    name = models.CharField(max_length=200) 
    serial = models.CharField(max_length=200) 
    barcode = models.CharField(max_length=200) 
    active = models.BooleanField(verbose_name="Active (can be checked out if not out for repair)",blank=True,default=True) 
    repair = models.BooleanField(verbose_name="Out for repair?",blank=True) 
    group = models.ForeignKey(Groups) 

    def __unicode__(self): 
     return self.name 

車型我想我需要將存儲結帳/信息另一種模式?我猜我只需要獲得最後一個,以便知道它是否被簽入或簽出?我想保留這些項目的歷史記錄,以便我可以使用它創建報告。

我該如何去做,所以我有這些物品的歷史記錄,以及物品是否可以檢入或退出?

回答

1

是的,這是不是從你的問題是什麼一個簽入/籤是完全清楚,但我的猜測是你想要的東西像

class Checkout(models.Model) 
    item = models.ForeignKey(Inventory) 
    user = models.ForeignKey(User) 
    checked_out = models.DateTimeField() 
    checked_in = models.DateTimeField(null=True) 
    ... 

你會再創建這些對象之一,每當一件物品是查出來,然後更新它來設置,當它在被籤回簽入日期

要查找當前檢出(或確定如果事情沒有被檢出),你可以做一個查詢,如:。

try: 
    checkout = Checkout.objects.get(item=my_item, checked_in=None) 
except Checkout.DoesNotExist: 
    #item isn't checked out 
    checkout = None 
+0

簽出將是一個新的應用程序? – Bot

+0

簽出將是'inventory/models.py'中的另一個模型。一個新的應用程序可能會矯枉過正。 –