Конечно, есть лучший способ сделать это?
results = []
if not queryset is None:
for obj in queryset:
results.append((getattr(obj,field.attname),obj.pk))
Проблема в том, что иногда набор запросов имеет значение None, что вызывает исключение, когда я пытаюсь выполнить итерацию по нему. В этом случае я просто хочу, чтобы результат был установлен в пустой список. Этот код взят из представления Django, но я не думаю, что это имеет значение - это кажется более общим вопросом Python.
РЕДАКТИРОВАТЬ: Я выяснил, что именно мой код превращал пустой набор запросов в "None" вместо того, чтобы возвращать пустой список. Возможность предположить, что набор запросов всегда итеративен, упрощает код, позволяя удалить оператор «если». Приведенные ниже ответы могут быть полезны для тех, кто сталкивается с той же проблемой, но не может изменить свой код, чтобы гарантировать, что набор запросов не "Нет".