У меня есть модель, в которой я собираю контактную информацию для потенциальных клиентов. Один из них относится к месяцу, и я пытаюсь заставить их отображаться в виде переключателя. Я использовал опцию RadioSelect только для того, чтобы узнать, что к ней не подключена кнопка Radio.
Я нашел, как вручную вводить каждое поле формы на страницу, используя документацию Django. Я сделал это, и это сработало, но теперь отображается все 12 месяцев, 12 раз. Я не знаю, как заставить это показать все 12 месяцев только один раз.
forms.py
from django.forms import ModelForm
from django import forms
from .models import CustomerData, Ebook
MONTH_CHOICES = [
('January', 'January'),
('February', 'February'),
('March','March'),
('April', 'April'),
('May', 'May'),
('June','June'),
('July', 'July'),
('August', 'August'),
('September','September'),
('October','October'),
('November','November'),
('December','December')
]
class ContactForm(ModelForm):
month = forms.ChoiceField(label='', choices=MONTH_CHOICES, widget=forms.RadioSelect(), error_messages={'required' : 'Month is Required'})
phone = forms.CharField(required=False)
firstname = forms.CharField(label='', error_messages={'required': 'First Name Required'})
lastname = forms.CharField(label='', error_messages={'required': 'Last Name Required'})
npo = forms.CharField(label='', error_messages={'required': 'Organization Required'})
email = forms.CharField(label='', error_messages={'required': 'Email Required'})
class Meta:
model = CustomerData
fields = ['firstname', 'lastname', 'npo', 'email', 'phone', 'month']
index.html
<div class="fieldWrapper">
{{ form.month.errors }}
<label for="{{ form.subject.id_for_label }}">Month:</label>
{% for month in form.month %}
<label>
<input name="group1" type="radio" />
<span> {{ form.month }} </span>
</label>
{% endfor %}
</div>
Мне нужно, чтобы это повторялось по месяцам и отображало каждый из них только один раз
Это изображение того, что я вижу