根据 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 字段大小时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 Gmail 的 Django 错误报告

在 Django 中使用基于异步类的视图的正确方法

Django开发博客系统(07-根据需求定制管理后台)

Django 404页面未加载

如何使用 Django Rest Framework 删除对象

python文档生成工具:pydocsphinx;django如何使用sphinx?