根据相关配置文件中的字段生成用户列表

Generate list of users based on field in related profile

我有一个用户模型和一个配置文件模型,我想要 return 配置文件中 Is_teacher == true 的用户列表

这是我的 model.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    is_teacher = models.BooleanField(default=False)

这是我的view.py

def tutorlist(request):
    users = User.objects.filter(user.profile.is_teacher == True)

    return render(request, 'home/tutor_list.html', {'users': users})

如何return 个人资料 == true 的用户?

true_profiles = [users in users if users.profile.is_teacher == True]

将遍历所有用户并添加 profile.is_teacher 属性为 true 的用户。

Django 允许您span lookups over relationships

这会起作用:

users = User.objects.filter(profile__is_teacher=True)

注意 filter 中的语法,因此 __ 而不是 .= 而不是 ==。这是需要习惯的事情,并且在 django docs 中得到了很好的解释。绝对值得一看!