我想自定义一个modelForm,其中包含从0到10的选项列表。 我试图添加一个小部件,但无法弄清楚如何使其工作:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div id="banner-message">
<p>Hello World</p>
<button>Change color</button>
</div>
给我一个错误:
class Abonnements(models.Model):
id = models.AutoField(primary_key=True)
nombre_d_exemplaire = models.IntegerField(blank=True, null=True)
numero_d_adherent = models.IntegerField(blank=True, null=True)
date_d_enregistrement = models.DateTimeField(blank=False, null=False) # This field type is a guess.
premier_numero_a_servir = models.FloatField(blank=True, null=True)
remarques = models.TextField(blank=True, null=True)
destinataire_facture = models.TextField(blank=True, null=True)
adresse_facture = models.TextField(blank=True, null=True)
code_postal_facture = models.TextField(blank=True, null=True)
ville_facture = models.TextField(blank=True, null=True)
personne = models.ForeignKey('personnes.Personnes',on_delete=models.PROTECT,)
class Meta:
db_table = 'abonnements'
ordering = ['-date_d_enregistrement']
class AbonnementsForm(ModelForm):
class Meta:
model = Abonnements
fields = [ "nombre_d_exemplaire" ]
widgets = {'"nombre_d_exemplaire" : forms.ChoiceField(widget=forms.RadioSelect, choices=range(10)) }
答案 0 :(得分:0)
我认为是choices
parameter expects a List of Tuples。它应该是这样的:
forms.ChoiceField(widget=forms.RadioSelect, choices=[(x, x) for x in range(10)])
因为我们需要传递一个&#34;值&#34;和一个&#34;键&#34;格式,第一个用作输入的值,第二个用作该值的Label。您还可以使用以下内容:
[('first', 'First'), ('second', 'Second'), ('third', 'Third')]
答案 1 :(得分:0)
如果我理解你的问题, 你可以这样做: 首先在类定义之前创建一个列表:
options = []
for i in range(0,11):
options.append((i,i))
然后明确添加所需字段:
number = forms.ChoiceField(choices=options)