CouchDbKit Django ext does not work with choices
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 35/100
调研方向
从 couchdbkit/ext/django/forms.py 的 fields_for_document(第 160 行)开始,使用 issue 中的 Work 和 WorkForm 示例重现渲染失败。检查 StringProperty 的默认值和 choices 如何转换为表单字段选项;当包含这些 choices 的文档能够在没有报告的 TypeError 的情况下渲染其表单,并保留预期的默认行为时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Here is a code example::
# models.py
from couchdbkit.ext.django import schema
LICENCE_CHOICES = (
('gpl', _('GPL')),
('lgpl', _('LGPL')),
('bsd', _('BSD')),
)
class Work(schema.Document):
licence = schema.StringProperty(_('Licence'),
required=True, default='gpl', choices=LICENCE_CHOICES)
# forms.py
from couchdbkit.ext.django.forms import DocumentForm
from .models import Work
class WorkForm(DocumentForm):
class Meta:
document = Work
When I try to render this form, I get this error::
Error when calling the metaclass bases
cannot concatenate 'str' and 'list' objects
Exception Location: .../couchdbkit/ext/django/forms.py in
fields_for_document, line 160
This error is caused by this code::
if prop.choices:
if prop.default:
defaults['choices'] = prop.default_value() + list(
prop.choices)
defaults['coerce'] = prop.to_python
My default value is 'gpl', why default value is concatenated with choices? Is
this an error or a feature which I don't know how to use?
- 主要语言
- Python
- 星标
- 261
- 派生
- 90
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
benoitc/couchdbkit 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 82/100
benoitc/couchdbkit#181 ·
-
难度 2/5 1-3 小时 新手友好度 35/100
benoitc/couchdbkit#196 ·
-
难度 3/5 1-2 天 新手友好度 35/100
benoitc/couchdbkit#194 ·
-
难度 4/5 3-5 天 新手友好度 30/100
benoitc/couchdbkit#193 · 2 条评论 · 1 个 reaction ·
-
难度 2/5 1-3 小时 新手友好度 48/100
benoitc/couchdbkit#192 ·
查看 benoitc/couchdbkit 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 62/100
openvinotoolkit/openvino_notebooks#3858 ·
维护者通常 1 天内回复
-
bug
难度 1/5 1 小时以内 新手友好度 88/100
hummingbot/hummingbot-api#256 ·
-
bug
难度 2/5 1-3 小时 新手友好度 80/100
-
area:other help wanted
难度 2/5 1-3 小时 新手友好度 70/100
WingedGuardian/GENesis-AGI#4734 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
peach-mitao/peach#693 ·
维护者通常 1 天内回复