0

这是场景:

class Account(model.Model):
    acc_name = models.CharField(max_length=50)


class Person(model.Model):
    accounts = models.ManyToManyField(Account)


class Message(model.Model):
    person = models.ForeignKey(Person)
    msg = models.CharField(max_length=500)

现在我在我的admin.py. 所以它看起来像这样:

class Account(admin.ModelAdmin):
    ...
    some code
    ...

admin.site.register(Account, AccountAdmin)


class MessageInLine(admin.StackedInline):
    model = Message


class PersonAdmin(admin.Modeladmin):
    inlines = [MessageInLine]


admin.site.register(Person, PersonAdmin)

所以它Message有一个ForeignKeyonPersonPerson一个Many-To-Manywith Account

现在Django-admin,在我添加 Person 的地方,它显然给出了Personand的组件Message。现在这里的帐户在一个列表中,需要通过持有来选择它们CTRL。我想使用 aradio_button来允许选择多个按钮以便更快地选择。我怎样才能做到这一点?

编辑 :

我尝试在里面使用这样的radio_field PersonAdmin

radio_fields = {"accounts":admin.VERTICAL}

但它给了我一个错误,说它是 aForeignKey也没有 aChoices Set很明显这不起作用。有没有解决的办法?

4

1 回答 1

2

这个答案似乎有一种方法使用CheckboxSelectMultiple

from django.forms.widgets import CheckboxSelectMultiple

class PersonAdmin(admin.ModelAdmin):
    inlines = [MessageInLine]
    formfield_overrides = {
        models.ManyToManyField: {'widget': CheckboxSelectMultiple},
    }

请也阅读另一个问题

于 2013-06-20T01:46:56.717 回答