说我有以下模型:
class User(models.Model):
name = models.CharField(max_length=255)
...
class Knapsack(models.Model):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
null=False
)
...
现在说我想为对象为my_user
的给定用户访问背包。我有几种选择:
knapsacks = Knapsack.objects.filter(user=my_user).values()
knapsacks = my_user.knapsack.values()
可能会问相同的问题,只是要一对一关系而不是外键。
哪种方法更好?
答案 0 :(得分:0)
OneToOne
字段和ForeignKey
字段的行为相同,您可以使用user.user
对其进行调用。第一个用户是您的Knapsack
模型的实例,第二个用户是与其相关的User