Как показать значение поля объекта GenericRelation в list_display?

models.py

class ModelA(models.Model):
  name = models.CharField(max_length=40)

class ModelB(models.Model):
  name = models.CharField(max_length=100)
  model_c = GenericRelation("modelc")

class ModelC(models.Model):
  model_a = models.ForeignKey(ModelA, on_delete=models.CASCADE)
  content_type = models.ForeignKey(ContentType, 
    limit_choices_to={"model__in":["modelb", "modelx", "modely"]}, 
    on_delete=models.CASCADE)
  object_id = models.PositiveIntegerField()
  details = GenericForeignKey("content_type","object_id")

admin.py

class AdminModelB(admin.ModelAdmin):
  list_display = ("name", "model_a")

  @staticmethod
  def model_a(obj):
    return obj.model_c.model_a  # 'GenericRelatedObjectManager' object has no attribute 'model_a'

У меня есть ModelB, имеющий GenericRelation в поле model_c, где ModelC содержит ContentType как ForeignKey. Теперь я хочу отобразить ModelA.name в list_display из ModelB. Я пробовал как другие поля ForeignKey, но это дает мне ошибку 'GenericRelatedObjectManager' object has no attribute 'model_a'.

Вернуться на верх