首页 文章

AttributeError:'__proxy__'对象在Django中使用ArrayField时没有属性'set_attributes_from_name'

提问于
浏览
1

我尝试在我的模型中为ArrayField设置延迟翻译 . 像这样的东西:

from django.utils.translation import gettext_lazy as _

class MyModel(models.Model):
    choices = ArrayField(
        _('choices'),
        models.CharField(max_length=255),
        blank=True,
        null=True,
        help_text=_('Comma-delimited list.')
    )

但是,我收到此错误:

AttributeError: '__proxy__' object has no attribute 'set_attributes_from_name'

应该是 verbose_name ,如果是,为什么? ArrayFields不是关系 .

1 回答

  • 1

    ArrayField [Django-doc]的第一个参数是:

    class ArrayField(base_field,size = None,** options)

    所以将存储在数组中的项的类型 .

    所以你可以构建如下字段:

    from django.utils.translation import gettext_lazy as _
    
    class MyModel(models.Model):
        choices = ArrayField(
            models.CharField(max_length=255),
            verbose_name=_('choices'),
            blank=True,
            null=True,
            help_text=_('Comma-delimited list.')
        )
    

    或者您可以明确命名 base_fieldverbose_name ,然后顺序无关紧要 .

相关问题