Ошибка при попытке formfield_overrides изменить размер поля TextField в соответствии с документацией Django - PullRequest
1 голос
/ 10 марта 2011

Попытка следовать этим указаниям в документации: http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overrides

Получение этой ошибки msg: у объекта 'module' нет атрибута 'TextField'
Чего мне не хватает?

Этот код в 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}, }

1 Ответ

1 голос
/ 06 июля 2011

Попробуйте указать пространство имен для моделей более явно (например, при использовании моделей ГИС):

import django.contrib.gis.db.models


class MyAdmin(admin.ModelAdmin):
    formfield_overrides = { django.contrib.gis.db.models.TextField: {'widget': forms.TextInput(attrs={'size':20})},}
...