Поля модели «Один к одному» в admin

#django #django-admin

#django #django-admin

Вопрос:

Этот вопрос всплывал в той или иной форме, но я не смог найти на него определенного ответа.

Допустим, у меня есть это:

 class BaseModel(models.Model):
    base_field = models.CharField(max_length=10)

class ExtendedModelA(models.Model):
    extended_field_a = models.CharField(max_length=10)
    base = models.OneToOneField(BaseModel)

class ExtendedModelB(models.Model):
    extended_field_b = models.CharField(max_length=10)
    base = models.OneToOneField(BaseModel)
  

Вопрос в том, как мне сделать BaseModel поле доступным для редактирования в интерфейсе администратора, когда я нажимаю на любой из ExtendedModel экземпляров.

Я знаю, что могу ссылаться ExtendedModel как на встроенный из Base , но для меня это не имеет особого смысла, поскольку я хочу создать, ExtendedModelA/B от кого «наследуются» данные Base .

Погуглив, я нашел решение на DjangoSnippets, но оно не работает с версии 1.1 и требует исправления для Django, что является уродливым.

Это очень простая вещь, о которой все знают, кроме меня, или никто этого вообще не делает ??…

Комментарии:

1. Вы пробовали использовать наследование нескольких таблиц ?

2. да, кажется, это работает. Спасибо!! Можете ли вы просто опубликовать это как ответ, и я приму его, он делает именно то, что мне нужно.

Ответ №1:

Попробуйте использовать наследование нескольких таблиц. Он делает то, что вы хотите.