您的位置:首页 > 编程语言 > Python开发

Python Django admin many-to-many 多选框改成复选框

2013-11-06 10:59 393 查看
在django 的admin中,若有两张表为many-to-many的关系,则使用django model类里面的ManyToManyField了。并且可以选择自定义中间表,在ManyToManyField里面添加属性through=“中间表的model类”。嘿嘿,脱离话题了,下面进入主题吧。

models.py

class Person(models.Model):
name = models.CharField(primary_key=True, max_length=128)
desc = models.CharField(max_length=256)

def __unicode__(self):
return self.name
class Meta:
db_table = u'person'

class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, db_table='person_group')

def __unicode__(self):
return self.name
class Meta:
db_table = u'group'


admin.py

class GroupForm(forms.ModelForm):
members = forms.ModelMultipleChoiceField(widget=CheckboxSelectMultiple, queryset=Person.objects.all())

class Meta:
model = Group

class GroupAdmin(admin.ModelAdmin):
form = GroupForm


下面是效果图:



个人认为比默认的多选框强,需要的就拿去吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python django