如何使用 select_related

Phi*_*tua 1 django django-queryset python-3.x

我如何使用select_related下面的员工类的名字和姓氏。

class Employee(models.Model):
    """
    Model, which holds general information of an employee.

    """
    user = models.OneToOneField(User, related_name='users',
                                on_delete=models.CASCADE, unique=True)
    photo_logo = models.FileField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

这是我实现查询的方式

emp=Employee.objects.filter(pk=1).select_related('user').values('user_first_name','user_last_name','id')
Run Code Online (Sandbox Code Playgroud)

但是在运行打印语句后我得到以下日志 django shell

Cannot resolve keyword 'user_first_name' into field. Choices are: address, address_id, attendance, basic,
Run Code Online (Sandbox Code Playgroud)

nev*_*ner 5

由于您需要用户模型的特定字段,因此select_related在这种情况下不需要,只需使用:

emp=Employee.objects.filter(pk=1).values('user__first_name','user__last_name','id')
Run Code Online (Sandbox Code Playgroud)

询问。

请注意,您应该使用双下划线__来执行连接。