【发布时间】:2011-05-02 18:44:00
【问题描述】:
定义我的 django 表单时出现一个奇怪的错误。我得到了错误:
__init__() got multiple values for keyword argument 'choices'
TestForm 和 SpeciesForm 都会发生这种情况(引用如下);基本上这两种形式都带有“选择”关键字参数。 init() 从未显式调用,并且表单甚至还没有在视图中实例化。有一个 ModelForm 和一个 plain Form。
from django import forms as f
from orders.models import *
class TestForm(f.Form):
species = f.ChoiceField('Species', choices=Specimen.SPECIES)
tests = f.MultipleChoiceField('Test', choices=Test.TESTS, widget=f.CheckboxSelectMultiple())
dna_extraction = f.CharField('DNA extraction', help_text='If sending pre-extracted DNA, we require at least 900 ng')
class SpeciesForm(f.ModelForm):
TYPE_CHOICES = (
('blood', 'Blood'),
('dna', 'Extracted DNA'),
)
dam_provided = f.BooleanField('DAM', help_text='Is dam for this specimen included in sample shipment?')
sample_type = f.ChoiceField('Type of sample', choices=TYPE_CHOICES)
dna_concentration = f.CharField('DNA concentration', help_text='If sending extracted DNA, approximate concentration')
class Meta:
exclude = ['order']
model = Specimen
任何帮助将不胜感激。不知道为什么会发生这种情况,因为表单非常简单。
【问题讨论】:
-
回溯不仅仅是随机噪声,你知道:它包含有用的调试信息。请张贴。
-
@Daniel Roseman:+1。你的评论让我崩溃了。
-
这很奇怪。我可以始终如一地重现它,但似乎找不到解决方法。确实很奇怪!