Python “django”;仅限();这个方法似乎不能正常工作
Models.pyPython “django”;仅限();这个方法似乎不能正常工作,python,django,Python,Django,Models.py class Post(models.Model): id = models.IntegerField(default=0) name = models.CharField(max_length=200, default='', blank=True) click = models.IntegerField(default=0) content = models.CharField(max_length=200, default='', blan
class Post(models.Model):
id = models.IntegerField(default=0)
name = models.CharField(max_length=200, default='', blank=True)
click = models.IntegerField(default=0)
content = models.CharField(max_length=200, default='', blank=True)
下面是我的代码
post = Post.objects.filter(id=3).only('name')
print(post.values())
结果如我所料
<QuerySet [{'name': 'Micheal'}]>
但实际结果是
<QuerySet [{'id': 3, 'name': 'Micheal', 'click': 2, 'content': 'asdf'}]>
如何解决此问题?看起来您误解了以下用法: 惟一的()方法或多或少与defer()相反。你管它叫什么 具有检索模型时不应延迟的字段。 如果您有一个几乎所有字段都需要延迟的模型, 使用only()指定互补字段集可能会导致 更简单的代码 您要找的是和:
看起来您误解了以下用法: 惟一的()方法或多或少与defer()相反。你管它叫什么 具有检索模型时不应延迟的字段。 如果您有一个几乎所有字段都需要延迟的模型, 使用only()指定互补字段集可能会导致 更简单的代码 您要找的是和: 我们可以将您的查询写在一行中,如下所示:
post = Post.objects.filter(id=3).only('name').values()
print(post)
在中,如果未指定字段,则每个字典将包含数据库表中每个字段的键和值 values()方法采用可选的位置参数,*fields,用于指定应限制选择的字段名。如果指定字段,则每个字典将仅包含指定字段的字段键/值。如果不指定字段,则每个字典将包含数据库表中每个字段的键和值
因此,这就是为什么:
<QuerySet [{'id': 3, 'name': 'Micheal', 'click': 2, 'content': 'asdf'}]>
是预期的输出
我怎样才能解决这个问题
- 只是用户或用户李>
- 您可能有兴趣使用
的values\u list()
参数,因为您只需要一个字段(flat=True
)name
post = Post.objects.filter(id=3).only('name').values()
print(post)
在中,如果未指定字段,则每个字典将包含数据库表中每个字段的键和值 values()方法采用可选的位置参数,*fields,用于指定应限制选择的字段名。如果指定字段,则每个字典将仅包含指定字段的字段键/值。如果不指定字段,则每个字典将包含数据库表中每个字段的键和值
因此,这就是为什么:
<QuerySet [{'id': 3, 'name': 'Micheal', 'click': 2, 'content': 'asdf'}]>
是预期的输出
我怎样才能解决这个问题
- 只是用户或用户李>
- 您可能有兴趣使用
的values\u list()
参数,因为您只需要一个字段(flat=True
)name