Django: Как получить параметры, используемые в filter(), из QuerySet?
Для следующего набора запросов,
qs = MyModel.objects.filter(attribute_one='value 1', attribute_two='value 2')
Как я могу получить параметры, используемые в фильтре (т.е. attribute_one и attribute_two) и соответствующие значения (т.е. value 1 и value 2) из qs?
Спасибо!
Вы должны пройти через цикл, даже если в qs.
может быть только один элемент. for i in qs:
print(i.value1)
or just do...
for qs in MyModel.objects.filter(
attribute_one='value 1', attribute_two='value 2'):
print(qs.value1)
Alternatively if it is one object you are after use 'get'
MyModel.objects.get(
attribute_one='value 1', attribute_two='value 2')
Вы можете использовать values, как указано в комментарии. Из документации:
Возвращает QuerySet, который возвращает словари, а не экземпляры модели, при использовании в качестве итерабельного.
qs = MyModel.objects.filter(
attribute_one='value 1', attribute_two='value 2'
).values('attribute_one', 'attribute_two')
for q in qs:
for key, value in q.items():
# key as attribute_one
# value as value_1
# and so on