Включение многие ко многим из другой модели в поле в интерфейсе администратора django

#python #django #foreign-keys #many-to-many

#python #django #внешние ключи #многие ко многим

Вопрос:

Приветствую, я уверен, что есть простое решение для того, что я пытаюсь сделать, но, к сожалению, я не смог найти его в документации.

У меня есть следующая модель (показана упрощенная версия):

models.py:

 class Student(models.Model):
  student_id = models.IntegerField(primary_key=True, unique=True,
      db_index=True, max_length=9)
  first_name = models.CharField(max_length=50)
  last_name  = models.CharField(max_length=50)

  def __unicode__(self):
    return u"%s %s" % (self.first_name, self.last_name)

class Course(models.Model):
  course_id = models.AutoField(primary_key=True, unique=True,
                              db_index=True, max_length=4)
  title = models.CharField(max_length=50)
  dept = models.CharField(max_length=6)
  number = models.IntegerField(max_length=5)
  student_id = models.ManyToManyField(Student, blank=True)

  def __unicode__(self):
    return u"%s %s" % (self.dept, self.number)
  

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

Заранее спасибо за любую помощь!

Ответ №1:

Вы можете использовать inlines в своей связанной модели, или this сообщение в блоге может оказать некоторую помощь.

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

1. однако inlines не будет упаковывать поля множественного выбора «многие ко многим».

2. @Ranman Вы имеете в виду, что это не даст вам виджет multiselect, подобный тому, что в форме администратора, где сделана ссылка на вашу связь. Вы можете попробовать сообщение в блоге. Я никогда не использовал этот метод, поэтому не могу ручаться за него. Но это похоже на то, что вы ищете.