我有这样的查询:
file_s = Share.objects.filter(shared_user_id=log_id)
Run Code Online (Sandbox Code Playgroud)
现在,我想从Django视图中的file_s获取files_id属性.我怎样才能做到这一点?
Roh*_*han 71
使用values()得到特定属性,该属性将返回类型的字典列表,像
file_s = Share.objects.filter(shared_user_id=log_id).values('files_id')
Run Code Online (Sandbox Code Playgroud)
编辑:如果您只想要一个属性,那么您可以flat=True建议只返回值列表.但是,请确保列表的顺序.
file_s = Share.objects.filter(shared_user_id=log_id).values_list('files_id', flat=True).order_by('id')
Run Code Online (Sandbox Code Playgroud)
您的Share.objects.filter()调用返回一个Djagno QuerySet对象,该对象不是单个记录,而是可迭代的来自数据库的过滤对象,每个项目都是一个Share实例。您的filter通话可能会返回多个项目。
您可以QuerySet使用以下循环遍历:
for share in files_s:
print share.files_id
Run Code Online (Sandbox Code Playgroud)
如果知道查询仅返回单个项目,则可以执行以下操作:
share = Share.objects.get(shared_user_id=log_id)
Run Code Online (Sandbox Code Playgroud)
这将返回一个Share实例,您可以从中访问该files_id属性。如果查询返回的结果不是1个结果,则将引发异常。
| 归档时间: |
|
| 查看次数: |
60072 次 |
| 最近记录: |