如何通过约束查询某些字段的模型,例如我不想查询id和密码。
Class AppUser(models.Model):
username = models.CharField(max_length=16)
password = models.CharField(max_length=64)
email = models.CharField(max_length=16)
现在我查询的情况是:
app_users = models.AppUser.objects.all() # all the fields will be find out.
那么,当我查询时,如何只查看指定的字段,我不想显示id和密码?
答案 0 :(得分:2)
您可以使用values
或values_list
app_users = models.AppUser.objects.all().values('email')
或者您可以使用字段列表
values = ['username', 'email']
app_users = models.AppUser.objects.all().values(*values)
更多详情values
答案 1 :(得分:1)
您可以使用defer()
或only()
。
例如:app_users = models.AppUser.objects.defer('id', 'password')
将构造一个SQL查询,该查询为SELECT * FROM ....
,但不加载id
和password
。 defer()
用于避免加载某些字段。
app_users = models.AppUser.objects.only('id')
现在只会从数据库加载id
,这意味着only()
用于从数据库中检索特定字段。这些是QuerySet
属性,用于Django中的性能优化。
更多关于documentation。