根据 Django 文档,尝试使用 formfield_overrides 更改 TextField 字段大小时出错
Posted
技术标签:
【中文标题】根据 Django 文档,尝试使用 formfield_overrides 更改 TextField 字段大小时出错【英文标题】:Getting error trying out formfield_overrides to alter TextField field size, per Django documentation 【发布时间】:2011-07-13 00:44:42 【问题描述】:尝试遵循文档中的这些指示: http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overrides
收到此错误消息:“模块”对象没有属性“文本字段” 我错过了什么?
models.py 中的这段代码
class MyTest(models.Model):
mydesc = models.TextField(_('my desc'), )
admin.py 中的这段代码(注意相关的导入)
from django.contrib import admin
from django.db import models
from django.forms import Textarea
from myproject.myapp import MyTest
class MySizedTextarea(forms.Textarea):
def __init__(self, *args, **kwargs):
attrs = kwargs.setdefault('attrs', )
attrs.setdefault('cols', 80)
attrs.setdefault('rows', 1)
super(MySizedTextarea, self).__init__(*args, **kwargs)
class MyTestAdmin(admin.ModelAdmin):
fields = ('mydesc', )
formfield_overrides = models.TextField: 'widget': MySizedTextarea,
【问题讨论】:
注意:我受到启发尝试这种方法,因为它出现在文档和 Carl Meyer 为这个问题提供的示例中。 ***.com/questions/910169/…. 【参考方案1】:尝试更明确地为模型指定命名空间(例如,如果使用 GIS 模型):
import django.contrib.gis.db.models
class MyAdmin(admin.ModelAdmin):
formfield_overrides = django.contrib.gis.db.models.TextField: 'widget': forms.TextInput(attrs='size':20),
【讨论】:
以上是关于根据 Django 文档,尝试使用 formfield_overrides 更改 TextField 字段大小时出错的主要内容,如果未能解决你的问题,请参考以下文章