django的values()如何通过其他方式指定,不写死
时间: 2024-09-06 17:05:43 浏览: 36
django ORM之values和annotate使用详解
`django.db.models.query.QuerySet` 的 `values()` 方法用于获取查询结果中指定字段的字典列表,如果想通过其他方式指定字段而不是硬编码,你可以这样做:
1. **传递字段名称**:
使用字段名作为字符串参数,例如:
```python
MyModel.objects.values('field1', 'field2')
```
2. **使用字段变量**:
如果你想动态确定哪些字段需要包含,可以先创建一个字段列表或元组,然后传入这个列表:
```python
fields_to_include = ['field1', 'field2']
MyModel.objects.values(*fields_to_include)
```
3. **Django模板中**:
在视图函数返回的`QuerySet`上使用模板语言如`{% for obj in queryset %}`,在循环内引用变量或表达式来指定字段:
```python
def my_view(request):
field_list = ['field1', 'field2']
return render(request, 'template.html', {'objects': MyModel.objects.values(*field_list)})
```
阅读全文