首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子类django choicefield不工作

子类django choicefield不工作
EN

Stack Overflow用户
提问于 2016-04-24 10:34:03
回答 1查看 305关注 0票数 1

我试图对ChoiceField进行子类化,以便能够在多种形式(DRY)中使用它。例如:

代码语言:javascript
复制
class testField(forms.ChoiceField):
  choices = (('a', 'b'), ('c', 'd'))
  label = "test"

class testForm(forms.Form):
  test = testField()

其他类型的字段作为子类工作(如CharField),但是当呈现ChoiceField的子类时,会出现一个模糊的错误:

代码语言:javascript
复制
AttributeError at /..url.../
'testField' object has no attribute '_choices'

在子类中将choices指定为_choices不会报告错误,但也不会显示呈现中的内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-24 12:57:56

不要弄乱Field的类属性,choicesChoiceField实例的一个属性。

代码语言:javascript
复制
class TestField(ChoiceField):
    def __init__(self, *args, **kwargs):
        kwargs['choices'] = ((1, 'a'), (2, 'b'))
        kwargs['label'] = "test"
        super(TestField, self).__init__(*args, **kwargs)

class TestForm(Form):
    test = TestField()

f = TestForm()

f.fields['test'].choices
> [(1, 'a'), (2, 'b')]

f.fields['test'].label
> 'test'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36821980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档