【发布时间】:2020-02-12 15:04:07
【问题描述】:
我有一个users 的查询集,它们是模型User 的实例。
另一个名为 Patient 的模型有一个名为 OneToOneField 的 user:
user = OneToOneField('users.User', on_delete=CASCADE, related_name="patient",
blank=True, null=True)
目标是从用户的查询集中获得所有患者的查询集。
我认为使用related_name 就足够了,意思是:
queryset_of_users=User.objects.filter(main_group='patients')
queryset_of_patients=queryset_of_users.patient
但似乎不是这样,因为我收到以下错误:
AttributeError:“QuerySet”对象没有“患者”属性
有什么想法吗?
【问题讨论】:
-
[k.patient for k in users.objects.all()]
-
User.objects.all().values_list("patient", flat=True)会做你想做的事吗? -
@kpie -->
User.patient.RelatedObjectDoesNotExist: User has no patient -
for user in User.objects.all(): if hasattr(user,'patient'): user.patient即使用户没有病人也可以工作
标签: python django django-queryset