django - 表格中的下拉列表中的多对多字段

时间:2010-08-17 09:46:12

标签: django django-forms

我有一对多关系模型,它实际上在表单上显示为多选列表。在一个特定的地方,我想把它显示为下拉单选 - 任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

请参阅overriding default field types or widgets上的文档。

如果你有一个Book模型,与ManyToManyAuthor的关系,就像这样:

class Author(models.Model):
    name = models.CharField(max_length=100)
    title = models.CharField(max_length=3, choices=TITLE_CHOICES)

    def __unicode__(self):
        return self.name

class Book(models.Model):
    name = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)

然后你可以这样做:

from django.forms import ModelForm, Select

class AuthorForm(ModelForm):
    class Meta:
        model = Author
        widgets = {
            'name': Select(),
        }

NB。此代码未经过测试,但希望足以让您继续前进。