Вам просто нужно два переопределения, чтобы сделать это.
Сначала создайте два класса и верните желаемый текст, который вы хотите отобразить в опции внешнего ключа.
class QuestionChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "Question: {}".format(obj.question)
class TopicChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "Topic: {}".format(obj.topic)
Теперь в администраторе следующей модели добавьте следующую функцию.
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'question':
return QuestionChoiceField(queryset=Table3.objects.all())
if db_field.name == 'topic':
return TopicChoiceField(queryset=Table3.objects.all())
return super().formfield_for_foreignkey(db_field, request, **kwargs)