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
Вернуться на верх