Skip to main content
 首页 » 编程设计

python之在 Django 管理界面的字段中包含来自另一个模型的多对多

2025年05月04日29cmt

您好, 我确信有一个简单的解决方案可以解决我想要做的事情,但不幸的是我无法在文档中找到它。

我有以下模型(显示为简化版本):

模型.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) 

我想要的是能够在管理界面中将学生添加到多个类(class),类似于我在类(class)管理界面中添加学生的方式。如果还有另一种方法似乎更有益,我也会对此感兴趣。

在此先感谢您的帮助!

请您参考如下方法:

您可以使用 inlines在您的相关模型中,或 this博文可能会有一些帮助。