Django администратор сайта обратный ForeignKey встроенный - PullRequest
8 голосов
/ 23 декабря 2009

У меня есть эти модели:

(псевдокод)

Course:  
  ForeignKey(Outline, null=True, blank=True)  
  ForeignKey(OutlineFile, null=True, blank=True)

Outline:    
  //data

OutlineFile:    
  //different data

Ситуация такова, что с любым курсом может быть связан Outline и / или OutlineFile, или ни того, ни другого. Outline может быть связан с несколькими курсами, аналогично OutlineFile может быть связан с несколькими курсами. Тем не менее, курс будет иметь только один из них.

Я хочу, чтобы на странице администратора изменения курса отображались все поля курса и выпадающий список для каждого из Outline и OutlineFile. Если один из них затем выбран, я хочу, чтобы поля для этого Outline отображались и изменялись, как встроенное поле.

Должен ли я каким-то образом реструктурировать свои модели или они уже адекватно структурированы? Можно ли в любом случае делать то, что я хочу, в рамках действующей системы строк?

И наконец, если это невозможно, с чего мне начать делать это по индивидуальному заказу?

1 Ответ

1 голос
/ 19 июля 2016

Вы делаете это наоборот:

class Course(models.Model):  
  # Foreign key is defined only in related fields

class Outline(models.Model):    
  course = models.ForeignKey(Course,
    related_name='outlines', # Or whatever you choose
    null=True, # These two mean your FK relation is basically optional
    blank=True
    )

class OutlineFile(models.Model):    
  # Same structure as above

Когда вы создаете формы std, эта структура модели создаст раскрывающийся список, который вы указали по умолчанию.

...