我正在尝试找到用于以下抽象场景的最佳模型。我将粘贴我所拥有的内容,但是如果有人可以提出一些很好的改进,那么我将无法在教程中找到与此用例相关的任何内容。提前谢谢!
方案 布拉德皮特和汤姆巡航共享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类来存储每天的汽车使用情况,以及谁使用它。这是解决这个问题的最好方法吗?
非常感谢你们!
取值
答案 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。