将自定义属性添加到Django模型字段 [英] Adding custom attributes to django model field

查看:50
本文介绍了将自定义属性添加到Django模型字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以在Django模型字段中添加一些任意属性吗?

Can I add some arbitrary attributes to django model field?

例如:

charField = models.CharField('char field', max_length=1024, aaaaa=true)

我可以添加属性aaaaa吗?

Can I add attribute aaaaa?

这可行吗?

推荐答案

如果选中 CharField

class CharField(Field):
    description = _("String (up to %(max_length)s)")

    def __init__(self, *args, **kwargs):
        super(CharField, self).__init__(*args, **kwargs)
        self.validators.append(validators.MaxLengthValidator(self.max_length))

它接受 ** kwargs ,但也调用 super ,并且继承的 __ init __ ( Field 对象)仅接受具名参数.

It accepts **kwargs but also calls super and inherited __init__ (Field object) only accepts named parameters.

class Field(object):
    def __init__(self, verbose_name=None, name=None, primary_key=False,
        max_length=None, unique=False, blank=False, null=False,
        db_index=False, rel=None, default=NOT_PROVIDED, editable=True,
        serialize=True, unique_for_date=None, unique_for_month=None,
        unique_for_year=None, choices=None, help_text='', db_column=None,
        db_tablespace=None, auto_created=False, validators=[],
        error_messages=None):

因此您不能传递自定义参数.

So you can not pass a custom argument.

您必须创建自定义字段

这篇关于将自定义属性添加到Django模型字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆