繁体   English   中英

django admin,设置选择字段长度?

[英]django admin, set choice field length?

我试图在我的django形式中设置ChoiceField长度,我使用以下:

from django.forms import TextInput, Textarea, ChoiceField

class SiteAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.CharField: {'widget': TextInput(attrs={'size':'25'})},
        models.ChoiceField: {'widget': TextInput(attrs={'size':'25'})},
        models.GenericIPAddressField: {'widget': TextInput(attrs={'size':'25'})},
    }
    ...

然后得到错误:

  File "/var/www/infternal/sites/admin.py", line 18, in SiteAdmin
    models.ChoiceField: {'widget': TextInput(attrs={'size':'25'})},
AttributeError: 'module' object has no attribute 'ChoiceField'

有谁知道我需要更改以更改选择/下拉长度?

谢谢

因为您以错误的方式定义表单集。 ChoiceField是Django表单的属性,而不是Django模型。

你的代码应该是这样的:

SOME_CHOICES = (
    ('1', 'Choice1'),
    ('2', 'Choice2'),
)
class SiteAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': TextInput(attrs={'size':'25'})},
        models.CharField: {'widget': ChoiceField(choices=SOME_CHOICES,max_length=25})},
        models.GenericIPAddressField: {'widget': TextInput(attrs={'size':'25'})},
    }

您可以覆盖formfield_for_foreignkeyformfield_for_choicefield以分别更改外键或选择字段的字段。 例如:

def formfield_for_choice_field(self, db_field, request, **kwargs):
    field = super(MyModelAdmin, self).formfield_for_choice_field(db_field, request, **kwargs)
    field.widget.attrs['size'] = '25'
    return field

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM