Здравствуйте,помогите пожалуйста разобраться с значениями в html.После нажатия на кнопку отправить,ничего не летит на почту с select и option
<form method="post" action="">
{% csrf_token %}
{{ form.name }}
{{ form.adress }}
{{ form.phone }}
<select>
{% for method in form.method %}
<option value="{{ method.id }}">{{ method }}</option>
{% endfor %}
</select>
<select>
{% for color in form.color %}
<option value="{{ color.id }}">{{ color }}</option>
{% endfor %}
</select>
<select>
{% for dyson in form.dyson %}
<option value="{{ dyson.id }}">{{ dyson }}</option>
{% endfor %}
</select>
<button type="submit">Отправить</button>
</form>
Как только ставлю обычную форму,то всё долетает
<form action="" method="post">
{% csrf_token %}
{{ form.name }}
{{ form.adress }}
{{ form.phone }}
{{ form.dyson }}
{{ form.color }}
{{ form.method }}
<button type="submit">Отправить</button>
models :
class SparePartAppointment(models.Model):
name = models.CharField('Полное имя', max_length=256)
phone = models.CharField('Телефон', max_length=26)
dyson = models.ForeignKey(verbose_name='Дайсон', to='Dyson', on_delete=models.RESTRICT,default='')
color = models.ForeignKey(verbose_name='Цвет', to='Color', on_delete=models.RESTRICT,default='')
method = models.ForeignKey(verbose_name='Метод', to='Method', on_delete=models.RESTRICT,default='')
adress = models.CharField('Адрес доставки',max_length=100, null=True, blank=True)
datetime = models.DateTimeField('Дата и время создания заявки', auto_now_add=True)
form:
class AppointmentForm(forms.ModelForm):
email_subject_template = 'accounts/emails/appointment/subject.html'
email_body_template = 'accounts/emails/appointment/body.html'
html_email_body_template = 'accounts/emails/appointment/html.html'
extra_context = {}
datetime = forms.DateTimeField(input_formats=[*DateTimeFormatsIterator(), '%d.%m.%Y %H:%M'], required=False)
# phone1 = forms.CharField(required=False) # Fake phone field to trap spam bots
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['color'].empty_label = 'Выберите цвет'
self.fields['dyson'].empty_label = 'Выберите свой Дайсон'
self.fields['method'].empty_label = 'Выберите метод'
# def clean(self):
# form_data = self.cleaned_data
#
# if form_data.get('phone1', None):
# print('Rej')
# raise ValidationError('Ваша заявка была определена как спам', code='spam')
#
# return form_data
def send_mail(self, request):
if not self.is_valid():
raise ValueError('The form must be valid to send mails')
dyson = self.cleaned_data.get('dyson')
site_name = 'localhost'
context = {'site_name': site_name, **self.cleaned_data, **self.extra_context}
send_mail(
render_to_string(self.email_subject_template, context=context).replace('\n', ''),
render_to_string(self.email_body_template, context=context),
settings.DEFAULT_FROM_EMAIL,
dyson.get_email_list(),
fail_silently=True,
html_message=render_to_string(self.html_email_body_template, context,
request=request) if self.html_email_body_template else None
)
Что я неправильно делаю?Заранее благодарен