首页 > 解决方案 > 如何访问 OneToOneFiled Django ORM 模型的数据

问题描述

我正在使用用户内置模型。现在我在 UserListView 中查询以排除存储角色的所有超级管理员用户Roles Model。我不知道如何查询queryset = User.objects.exclude(user_user_role_id=1)这是问题请帮我查询

class UserListView(LoginRequiredMixin, generic.ListView):
    model = User
    template_name = 'users/users.html'
    context_object_name = 'users'
    queryset = User.objects.exclude(user_user_role_id=1)


UserProfile Model
class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    user_company = models.ForeignKey(Company, on_delete=models.CASCADE)
    user_role = models.ForeignKey(Roles, on_delete=models.CASCADE)

class Roles(models.Model):
    role_title = models.CharField(max_length=30)
    role_description = models.CharField(max_length=100)

标签: djangodjango-modelsdjango-formsdjango-templatesdjango-views

解决方案


是的,我找到了。只需要使用双下划线

queryset = User.objects.exclude(userprofile__user_role_id=1)

或者

queryset = User.objects.exclude(userprofile__user_role__role_title='Super Admin')

推荐阅读