如何使用django admin表单中的多对多字段

时间:2011-09-19 04:12:57

标签: python django many-to-many

这是我的模特:

class Affiliation(models.Model):
    submission = models.ForeignKey(Submission, related_name='submission_affiliations')
    name = models.CharField(max_length=255)
    department = models.CharField(max_length=255)
    city = models.CharField(max_length=255)
    country = models.CharField(max_length=255)
    sequence_no = models.CharField('Sequence No.', max_length=1, default='1')

class Author(models.Model):
    submission = models.ForeignKey(Submission, related_name='submission_authors')
    salutation = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    first_name = models.CharField(max_length=255)
    email = models.CharField(max_length=255)
    presenting_paper_flag = models.BooleanField("Presenting Paper")
    sequence_no = models.CharField('Sequence No.', max_length=1, choices = SQ_NO, default='1')
    affiliations = models.ManyToManyField(Affiliation, through='AuthorAffiliation')

class AuthorAffiliation(models.Model):
    submission = models.ForeignKey(Submission)
    author = models.ForeignKey(Author)
    affiliation = models.ForeignKey(Affiliation)

Affiliation和Author之间的关系是M2M。 “作者”类中有“附属”字段。 “AuthorAffiliation”类中有“作者”和“从属关系”。

当我去django admin添加更多作者时,它应该如下所示(请关注红色椭圆):

http://nc7.upanh.com/b5.s1.d1/a68263c1da3310d189ef9252b0f482ef_35227917.screenshot20110916at1.png

**

我想在形式上做同样的事情,有人能告诉我怎么样?

**

这是我目前的表格:

http://nc9.upanh.com/b4.s9.d1/851b97ed981502921443ce4d4a614ff0_35228599.screenshot20110916at3.png

感谢。

(抱歉我的英文)

3 个答案:

答案 0 :(得分:1)

您是否尝试过inline formsets

答案 1 :(得分:0)

我不知道您是否会考虑使用ajax,但如果django-ajax-selects应该帮助您,我已经多次使用它了。

答案 2 :(得分:0)

你可以像G-mail那样为电子邮件作曲家的“收件人”字段做些什么 有一个自动完成的文本区域或文本字段,这个自动完成在文本区域中放置逗号分隔值... 这将需要JS / ajax