#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, подобный тому, что в форме администратора, где сделана ссылка на вашу связь. Вы можете попробовать сообщение в блоге. Я никогда не использовал этот метод, поэтому не могу ручаться за него. Но это похоже на то, что вы ищете.