我使用User中的默认from django.contrib.auth.models import User类。在创建用户的用户创建过程中,我将用户名字段设置为随机哈希。当我在ManyToMany字段中使用模型并在Django admin中使用它时,随机哈希将显示在选择框中。有没有一种方法可以指定要从选择框中显示的模型中获取的字段,以便我可以将模型指定为ManyToMany字段,并使用电子邮件在django admin表单中呈现。

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


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

最佳答案

我想你需要做这样的事情,

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

关于python - 指定要在django管理员中呈现的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35935133/

10-16 22:43