用于ForeignKey的Django Admin Custom Widget

时间:2016-05-04 07:57:40

标签: django widget foreign-keys admin django-hvad

这听起来像是一个微不足道的问题,但回答似乎并不那么容易:

如果此用户选中Admin中的复选框,您将如何在Django Admin中将ForeignKey字段显示为复选框并保存当前登录的用户?

示例:

class MyModel(models.Model):
    ...
    approved = models.ForeignKey(User)
    ...

admin.site.register(MyModel)

我如何能够将approved字段显示为复选框?

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您可以在ModelAdmin上使用get_form方法,并根据需要自定义表单。

在这种情况下,您必须将字段小部件更改为复选框,并在表单验证时将值设置为request.user(如果已选中)。

答案 1 :(得分:0)

您可以在admin.py

中按如下方式对其进行自定义
class MyModelWidget(forms.ModelForm):
    approved = forms.BooleanField(widget=forms.CheckboxInput())

    class Meta:
        model = MyModel
admin.site.register(MyModel, MyModelWidget)

参考https://docs.djangoproject.com/en/1.9/ref/contrib/admin/

答案 2 :(得分:0)

在你的form.py中:

class YOURMODELForm(forms.ModelForm):
    approved = forms.ModelChoiceField(queryset=User.objects.order_by('name'))