这是我的帐户模型,与用户
相关class Accounts(models.Model):
user = models.OneToOneField(User , unique=True)
name = models.CharField(max_length=50 , default='')
lastname = models.CharField(max_length=50, default='')
phone = models.CharField(max_length=11, default='')
mobile = models.CharField(max_length=11, default='')
我想要这个查询(忽略语法,命名错误)
select accounts.* , auth_user.username , auth_user.email
from accounts
join auth_user on auth_user.id = accounts.user_id
where accounts.user_id = 1
所以我可以做;
account = Accounts.objects.filter(user_id=user_id).select_related()
但由于只有一个帐户有该ID,我想用户.get()并显示没有循环的对象
account = Accounts.objects.get(user_id=user_id).select_related()
但是我得到了
'Accounts' object has no attribute 'select_related'
那么如何在单行选择中加入?基本上我想避免在对象上使用循环
答案 0 :(得分:0)
您可以使用first
代替获取
返回查询集匹配的第一个对象,如果没有匹配的对象,则返回None。如果QuerySet没有定义排序,那么查询集将由主键自动排序。
account = Accounts.objects.filter(user_id=user_id).select_related().first()