Django模型混乱

时间:2016-01-17 15:38:22

标签: django django-models django-templates django-views

我正在尝试找到用于以下抽象场景的最佳模型。我将粘贴我所拥有的内容,但是如果有人可以提出一些很好的改进,那么我将无法在教程中找到与此用例相关的任何内容。提前谢谢!

方案 布拉德皮特和汤姆巡航共享10辆汽车。他们每天都会选择他们驾驶的汽车。

每天,他们的管家记录谁正在使用哪辆车及其使用日期。

我希望能够看到: 个人使用的所有汽车和员工约会 使用特定汽车的所有人员和员工约会。

我的模特:

class Person(models.Model):
    first_name = models.CharField(max_length=200, default='FIRST')
    last_name = models.CharField(max_length=200, default='LAST')
    def __str__(self):
        return self.name

class Car(models.Model):
    name = models.CharField(max_length=200)
    def __str__(self):
        return self.name

class Car_used(models.Model):
    used_on = models.DateTimeField(auto_now_add=True) #Default to now?
    car = models.ForeignKey(Car, on_delete=models.CASCADE)
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    def __str__(self):
        return self.car.name

所以我使用这个Car_used类来存储每天的汽车使用情况,以及谁使用它。这是解决这个问题的最好方法吗?

非常感谢你们!

取值

1 个答案:

答案 0 :(得分:0)

考虑将Car_used重命名为CarUsed。这就是惯例。

您还应该实施一些机制,以防止两个人在同一天使用同一辆车。您可以按如下方式添加unique_together约束。

class Car_used(models.Model):
    # Your code here.

    class Meta:
        unique_together = ('used_on', 'car', 'person')

如果时间不重要,还可以考虑将used_on的类型更改为DateField。