如何使用 django-allauth 预取 SocialAccount?
How to prefetch SocialAccount with django-allauth?
Django-allauth 包创建了一个 SocialAccount 模型,其中包含用户的外键。我无法在我的查询集中预取此信息。
我的模特:
class Placerating(models.Model):
author = models.ForeignKey('auth.User', null=True, on_delete=models.SET_NULL)
Django-allauth 模型:
class SocialAccount(models.Model):
user = models.ForeignKey(allauth.app_settings.USER_MODEL, on_delete=models.CASCADE)
当我尝试预取此数据时:
rating = Placerating.objects.all().prefetch_related('author__socialaccount')
我收到以下错误消息:
AttributeError: Cannot find 'socialaccount' on User object, 'author__socialaccount' is an invalid parameter to prefetch_related()
有线索吗?谢谢!
我得到答案了。
SocialAccount是反向外键,所以必须在末尾加上"_set":
评分 = Placerating.objects.all().prefetch_related('author__socialaccount_set')
Django-allauth 包创建了一个 SocialAccount 模型,其中包含用户的外键。我无法在我的查询集中预取此信息。
我的模特:
class Placerating(models.Model):
author = models.ForeignKey('auth.User', null=True, on_delete=models.SET_NULL)
Django-allauth 模型:
class SocialAccount(models.Model):
user = models.ForeignKey(allauth.app_settings.USER_MODEL, on_delete=models.CASCADE)
当我尝试预取此数据时:
rating = Placerating.objects.all().prefetch_related('author__socialaccount')
我收到以下错误消息:
AttributeError: Cannot find 'socialaccount' on User object, 'author__socialaccount' is an invalid parameter to prefetch_related()
有线索吗?谢谢!
我得到答案了。
SocialAccount是反向外键,所以必须在末尾加上"_set":
评分 = Placerating.objects.all().prefetch_related('author__socialaccount_set')