2011-07-05 17 views
10

我想让Django管理员使用自定义表单域来输入一些字段。如何在Django管理员的模型字段中使用自定义表单域?

到现在为止,我制作了一个自定义模型字段,它具有绑定到它的表单字段,但它引入了一个不需要添加任何好处的不必要的模型字段。

我想可以使用自定义管理员表格(请参阅http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin)以某种方式完成,但我无法弄清楚如何去做。

+0

你对这个链接的例子不了解吗?看起来很清楚:用自定义字段定义表单,并将其设置为管理类的表单。有什么问题? –

回答

8
class MyModelForm(forms.ModelForm): 
    my_field = MyCustomFormField() 

    class Meta: 
     model = MyModel 

class MyModelAdmin(admin.ModelAdmin): 
    form = MyModelForm 
+0

谢谢!这就像一个魅力。我不知道你只能覆盖表单域。 – Semmel

+0

实际上,这个方法**不起作用** - 只在常规的'Form'上。如果想要覆盖'ModelForm'上的字段,则必须在Meta类中完成。请参阅https://docs.djangoproject.com/en/1.5/topics/forms/modelforms/#overriding-the-default-fields – jnns

+0

@jnns:奇怪的是,ModelForm部分几乎是从您链接的Django文档页逐字逐句。 – che

相关问题