Всем привет, очень надеюсь, что кто-нибудь подскажет какое-нибудь элегантное решение проблемы, ну или просто решение :)
У меня есть следующие таблицы:
Class A(models.Model):
.... # поля класса
Class B(models.Model):
field_a = models.ForeignKey(A, blank=True, null=True)
.... # остальные поля класса
Class С(models.Model):
field_b = models.ForeignKey(B, blank=True, null=True)
qty = models.IntegerField()
name = models.CharField()
.... # остальные поля класса
Использую модель A в админке:
class ModelA_Admin(admin.ModelAdmin):
...
def get_list_display(self, request):
# тут добавляю к list_display все объекты модели С, т. е. они будут отображаться как колонки (использую поле name класса C) для модели A.
# здесь вычисляю значения динамически добавленных полей
def __getattribute__(self, param_name):
if name in [c.name for c in C.objects.all()]:
# заполняем его чем-то
return super(ModelA_Admin, self).__getattribute__(name)
А теперь вопрос. Можно ли (и если можно, то как) сортировать в админке модель А по этим динамически добавляемым полям?