【发布时间】:2018-10-16 15:03:11
【问题描述】:
下面是我的模型。
class DoneType (AbstractTimeStamp):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200, primary_key=True)
class Done (AbstractTimeStamp):
user = models.ForeignKey(User, on_delete=models.CASCADE)
contents = models.CharField(max_length=200)
done_type = models.ForeignKey(DoneType, on_delete=models.SET_NULL, null=True)
start_time = models.DateTimeField()
> 一个用户可以拥有多个 DONE 模型。并且 DONE 模型可以有许多 DONE_TYPE 模型。
但是,这只有在 DONE 模型中的 USER 与 DONE_TYPE 模型中的 USER 相同时才有可能。
我该如何实现?
【问题讨论】:
-
您不需要
DoneType模型中的user字段。 -
@art06 是对的。您通过拥有一个冗余字段来非规范化您的关系模式。出于性能原因,这有时可能是可取的,但我非常怀疑这是否适合您。如果您需要访问
DoneType实例中的user字段,您始终可以使用done_type.done.user