model一般都是有多個屬性的,但是很多時候我們又只需要查詢特定的某一個,這個時候可以用到values
和values_list
利用values查詢
from attendence.models import Employee from attendence.models import EmployeeIP #獲取一個字段 ipList = EmployeeIP.objects.values("IP").first() print(type(ipList)) # <class 'dict'> print(ipList) # {'IP': '192.168.1.41'} #獲取多個字段 empList = Employee.objects.values("first_name", "last_name", "email")[0:2] print(type(empList)) # <class 'django.db.models.query.QuerySet'> print(empList) # [ # {'last_name': 'Wei', 'first_name': 'Vena', 'email': 'Vena@test.com'}, # {'last_name': 'Wan', 'first_name': 'Mark', 'email': 'mwan@test.com'} # ]
利用values_list查詢
ipList = EmployeeIP.objects.values_list("IP").first() print(type(ipList)) # <class 'tuple'> print(ipList) # ('192.168.1.111',) ipList = EmployeeIP.objects.values_list("IP")[0:2] print(type(ipList)) # <class 'django.db.models.query.QuerySet'> print(ipList) # [('192.168.1.41',), ('192.168.1.44',)] print(type(ipList[0])) # <class 'tuple' > print(ipList[0]) # 192.168.1.111
values和values_list的差別
從上面的代碼中我們可以看到返回結果類型上細微的差別
- vlaues -
- 單條記錄 -
<class 'dict'>
- 多條記錄 -
<class 'django.db.models.query.QuerySet'>
- 單條記錄 -
- vlaues_list -
- 單條記錄 -
<class 'tuple'>
- 多條記錄 -
<class 'django.db.models.query.QuerySet'>
- 單條記錄 -