pp.pprint(AppUser.objects.filter(directory__user_id = F( 'ID'))。查询。的 STR ())
('SELECT "users_appuser"."id", "users_appuser"."password", '
'"users_appuser"."last_login", "users_appuser"."is_superuser", '
'"users_appuser"."username", "users_appuser"."first_name", '
'"users_appuser"."last_name", "users_appuser"."email", '
'"users_appuser"."is_staff", "users_appuser"."is_active", '
'"users_appuser"."date_joined", "users_appuser"."gender", '
'"users_appuser"."age", "users_appuser"."avatar", "users_appuser"."about", '
'"users_appuser"."city", "users_appuser"."state", '
'"users_appuser"."location", "users_appuser"."location_updated", '
'"users_appuser"."online", "users_appuser"."entered_offline", '
'"users_appuser"."notifications", "users_appuser"."checkins", '
'"users_appuser"."lock_expiration" FROM "users_appuser" INNER JOIN '
'"chat_membershiphistory" ON ("users_appuser"."id" = '
'"chat_membershiphistory"."user_id") WHERE '
'"chat_membershiphistory"."user_id" = ("users_appuser"."id")')
我需要将chat_membership中的所有值都包含在最终查询中
这是我的Model类
class MembershipHistory(TimeStampedModel):
Active = "A"
Offline = "O"
Away = "X"
NEVER_JOINED = "N"
Locked = "L"
_STATUSES = ((Active, 'Active'), (Offline, 'Offline'), (Away, 'Away'),
(Locked, 'Locked'),
(NEVER_JOINED, 'Never joined'))
room = models.ForeignKey('places.Place', related_name='directory')
user = models.ForeignKey(AppUser, related_name='directory')
lock_expiration = models.DateTimeField(null=True,
blank=True,
editable=True)
type = models.CharField(max_length=1,
blank=False,
null=False,
choices=_STATUSES,
default="A")
class Meta:
ordering = ('room', 'user')
unique_together = ('room', 'user')
verbose_name = "Member"
verbose_name_plural = "Members"
如果我尝试 select_related ,我总是会收到以下错误
Invalid field name(s) given in select_related: 'directory'. Choices are: auth_token
答案 0 :(得分:0)
您应该使用prefetch_related
prefetch_related('directory')