Я только что обнаружил, что вы можете заменить набор запросов другим набором запросов или даже удалить набор запросов и заменить его списком выбора. Я делаю это в change_view.
В этом примере я позволяю родителю установить возвращаемое значение, затем извлекаю из него определенное поле и устанавливаю .choices:
def change_view(self, request, object_id, form_url='', extra_context=None):
#get the return value which includes the form
ret = super().change_view(request, object_id, form_url, extra_context=extra_context)
# let's populate some stuff
form = ret.context_data['adminform'].form
#replace queryset with choices so that we can specify the "n/a" option
form.fields['blurb_location'].choices = [(None, 'Subscriber\'s Location')] + list(models.Location.objects.filter(is_corporate=False).values_list('id', 'name').order_by('name'))
form.fields['blurb_location'].queryset = None
return ret