gpt4 book ai didi

Django : Get value of each subselect of a SelectDateWidget

转载 作者:行者123 更新时间:2023-12-01 15:54:42 24 4
gpt4 key购买 nike

我的表单有一个非常具体的 HTML 设计,所以我需要它全部用 HTML 编写,而且我不使用默认的表单渲染器。

我在我的 Django 表单中设置了这个 SelectDateWidget。除了 SelectDateWidget 之外,一切正常:如果我的表单无效,我会收集所有相关值并重新填充我的自定义 HTML 字段。问题是我似乎无法在我的模板中获取 SelectDateWidget 的值。

我试过 form.mydate_day.valueform.mydate.day_value 等等……但它似乎什么也没有。

谁能帮我解决这个问题?谢谢。

根据要求,模型:

class Subscriber(models.Model):
civilite = models.CharField(max_length=5, verbose_name='Civilite',choices=(('Mlle','Mademoiselle'),('M.','Monsieur'),('Mme','Madame')))
email = models.EmailField(max_length=255, verbose_name='Email', unique=True)
nom = models.CharField(max_length=60, verbose_name='Nom')
prenom = models.CharField(max_length=60, verbose_name='Prenom')
ville = models.CharField(max_length=50,verbose_name='Ville')
cp = models.CharField(max_length=5,verbose_name='Code Postal',validators=[RegexValidator(regex='^\d{5}$')])
date_naissance = models.DateField(auto_now_add=False)
optin = models.BooleanField(default=True,verbose_name='Optin')
date_inscription = models.DateField(auto_now_add=True)

形式:

class SubscriberForm(ModelForm):
class Meta:
model = Subscriber
widgets = {
'civilite': forms.RadioSelect(),
'date_naissance': extras.SelectDateWidget(years=range(1994,1900,-1)),
}

View :

def index(request):
if request.method == 'POST':
form = SubscriberForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/coreg.html')
else:
form = SubscriberForm()
return render(request,'index.html', {'form':form,'days':range(1,31),'months':range(1,12),'years':range(1994,1900,-1)})

模板:

    <label class="lbl" for="jour">Date de naissance :</label>
<div class="select {% if form.date_naissance.errors %}error{% endif %}"><span>
<select name="date_naissance_day" id="jour">
<option value="--">J</option>
{% for i in days %}
<option value="{{i}}" {% if form.date_naissance_day.value == i %}selected{% endif %}>{{i}}</option>
{% endfor %}
</select>
</span></div>
<div class="select"><span>
<select name="date_naissance_month" id="mois">
<option value="--">M</option>
{% for i in months %}
<option value="{{i}}" {% if form.date_naissance_month.value == i %}selected{% endif %}>{{i}}</option>
{% endfor %}
</select>
</span></div>
<div class="select last"><span>
<select name="date_naissance_year" id="annee">
<option value="--">A</option>
{% for i in years %}
<option value="{{i}}" {% if form.date_naissance_year.value == i %}selected{% endif %}>{{i}}</option>
{% endfor %}
</select>
</span></div>
<br clear="all" />

最佳答案

您可以像这样使用 form.data:

{% if form.data.date_naissance_day == i %}selected{% endif %}

关于 Django : Get value of each subselect of a SelectDateWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11864642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com