指定要在django admin

时间:2016-03-11 08:06:31

标签: python django

我使用User中的默认from django.contrib.auth.models import User类。在创建用户时的用户创建中,我将username字段设置为随机散列。当我在ManyToMany字段中使用该模型并在Django管理员中使用它时,随机哈希将在选择框中呈现。有没有办法指定要从模型中取出的字段以显示在选择框中,以便我可以将模型指定为ManyToMany字段,并使用电子邮件在django管理表单中呈现。

class TestModel(models.Model):
    group = models.ManyToManyField(Group, null=True)
    user = models.ManyToManyField(User, null=True)

是否有像display_name这样的字段可以传递给模型字段,以便可以从ManyToMany模型中获取相应的字段进行渲染。我正在使用Django 1.5.5

1 个答案:

答案 0 :(得分:3)

我认为你需要做这样的事情,

class TestModelAdminForm(forms.ModelForm):
    user = forms.MultipleChoiceField(choices=[ (user.id, user.email) for user in User.objects.all()])
    class Meta:
        model = TestModel
        fields = ('user','group')

class TestModelAdmin(admin.ModelAdmin):
    form = TestModelAdminForm