我有一个查询,它获取我想要的必需行,但问题是大多数字段/列都有空值,我只想从这些行中获取那些非空值的字段
queryset = User.objects.filter(email__exact=email)
这是我的模型
class User(models.Model):
email = models.CharField(max_length=50, null=True, blank=True)
password = models.CharField(db_index=True, max_length=40, null=True)
source = models.CharField(default='unknown', max_length=150, null=True)
domain = models.CharField(max_length=50, null=True, blank=True)
before_at = models.CharField(max_length=255, null=True, blank=True)
username = models.CharField(db_index=True, max_length=150, null=True, blank=True)
hash = models.CharField(max_length=255, null=True, blank=True)
ipaddress = models.CharField(max_length=50, null=True, blank=True)
phonenumber = models.CharField(max_length=100, null=True, blank=True)
def __str__(self):
if self.email != None:
return self.email
elif self.username != None:
return self.username
2条答案
按热度按时间ar5n3qh51#
或者,您可以使用:
我希望这能解决你的问题。
monwx1rj2#
您可以通过以下方式获得可为空字段的列表:
通过这些字段,我们可以制作一个过滤器:
如果字段为空,我们可以使用此筛选器排除所有记录:
也就是说,几乎所有字段都可以为空,这是相当奇怪的。通常只有一小部分是可以为空的,因为它常常使模型更复杂。