1

使用 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

我想我需要另一个模型来存储结帐/输入信息?我猜我只需要获得最后一个,以便我知道它是签入还是签出?我想保留项目的历史记录,以便我可以使用它创建报告。

我将如何制作它,以便我了解这些物品的历史以及这些物品是否可以签入或签出?

4

1 回答 1

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
于 2013-02-04T20:52:58.563 回答