Python 如何在django中筛选项目
我在我的应用程序中有一些用户,其中一些是管理员,一些是供应商,我只想过滤那些供应商。我试过使用一些queryset,但我没有得到它。我还希望得到一些建议,从中我可以了解更多关于在Django或python中过滤对象的信息。谢谢 models.pyPython 如何在django中筛选项目,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我在我的应用程序中有一些用户,其中一些是管理员,一些是供应商,我只想过滤那些供应商。我试过使用一些queryset,但我没有得到它。我还希望得到一些建议,从中我可以了解更多关于在Django或python中过滤对象的信息。谢谢 models.py class User(AbstractBaseUser, PermissionsMixin): email = models.EmailField(max_length=254, unique=True) is_staff = mode
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=254, unique=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
last_login = models.DateTimeField(null=True, blank=True)
date_joined = models.DateTimeField(auto_now_add=True)
# CUSTOM USER FIELDS
firstname = models.CharField(max_length=30)
lastname = models.CharField(max_length=30)
telephone = models.IntegerField(blank=True, null=True)
USERNAME_FIELD = 'email'
EMAIL_FIELD = 'email'
REQUIRED_FIELDS = []
def get_absolute_url(self):
return "/users/%i/" % (self.pk)
class user_type(models.Model):
is_admin = models.BooleanField(default=False)
is_supplier = models.BooleanField(default=False)
user = models.OneToOneField(User, on_delete=models.CASCADE)
def __str__(self):
if self.is_supplier == True:
return User.get_email(self.user) + " - is_supplier"
else:
return User.get_email(self.user) + " - is_admin"
views.py
def Viewsupplier(request):
suppliers = User.objects.filter(i am getting stuck here with the appriopriate filter)
context = {"suppliers":suppliers}
print(suppliers)
return render(request, 'core/view-suppliers.html', context)
您可以使用以下选项进行筛选:
suppliers = User.objects.filter(user_type__is_supplier=True)
suppliers=User.objects.filter(用户\u类型\u为\u supplier=True)
如果定义关系(如外键
或OneToOneField
),也可以反向访问该关系。如果在查询中执行此操作,它将使用as名称作为关系的反向名称。如果您没有填写此项,它将采用,最后,就像这里的情况一样,默认为小写的模型名称
因此,我们在这里过滤用户
对象,这样我们只检索用户
s,其中是供应商
是真的