我有一个这样的查询:
file_s = Share.objects.filter(shared_user_id=log_id)
现在,我想从 Django 视图中的 file_s 获取 files_id 属性。我怎样才能做到这一点?
我有一个这样的查询:
file_s = Share.objects.filter(shared_user_id=log_id)
现在,我想从 Django 视图中的 file_s 获取 files_id 属性。我怎样才能做到这一点?
用于values()
获取特定属性,该属性将返回您的字典列表,例如
file_s = Share.objects.filter(shared_user_id=log_id).values('files_id')
编辑:如果您只想要一个属性,那么您可以使用flat=True
建议只返回值列表。但是,请确保列表的顺序。
file_s = Share.objects.filter(shared_user_id=log_id).values_list('files_id', flat=True).order_by('id')
您的Share.objects.filter()
调用返回一个 Djagno QuerySet对象,该对象不是单个记录,而是来自数据库的过滤对象的可迭代,每个项目都是一个Share
实例。您的filter
电话可能会返回不止一项。
您可以迭代QuerySet
使用循环,例如:
for share in files_s:
print share.files_id
如果您知道您的查询只需要返回一个项目,您可以这样做:
share = Share.objects.get(shared_user_id=log_id)
这将返回一个Share
实例,您可以从中访问该files_id
属性。如果查询返回的结果不是 1,则会引发异常。
如果您只想从单个值 QuerySet 中获取值,您可以执行以下操作:
file_s = Share.objects.filter(shared_user_id=log_id).values_list('files_id', flat=True).first()