【发布时间】:2022-01-11 15:48:57
【问题描述】:
我是 Django 新手,我一直在尝试用 _set.all() 解决 OneToOne 字段关系
我的模型.py
class User(AbstractUser):
is_admin = models.BooleanField(default=False)
is_employee = models.BooleanField(default=True)
is_manager = models.BooleanField(default=False)
is_assistant = models.BooleanField(default=False)
class Profile(models.Model):
profile = models.OneToOneField(User, on_delete=models.CASCADE)
class Manager(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user_profile = models.OneToOneField(Profile, on_delete=models.CASCADE)
我正在尝试更新 Manager 实例,但不太清楚为什么 self.instance.user.profile_set.all() 在本节中不断抛出“'User' object has no attribute 'profile_set'”AttributeError:
forms.py
elif self.instance.pk:
self.fields['user_profile'].queryset = self.instance.user.profile_set.all()
我希望我的问题很清楚,任何帮助将不胜感激! 干杯!
【问题讨论】:
-
它是
self.instance.user.profile。 -
你真的应该重新考虑你的设计。 Manager 模型是非常不必要的。您已经知道用户是否是经理。并且配置文件用户字段应称为用户而不是配置文件以避免问题
标签: django set django-queryset