Передача жестко закодированного значения поля template select в модель django параллельно с полями modelform
У меня есть класс модели контакта и соответствующий ему modelForm:
# models.py
class Contact(models.Model):
name = models.CharField(max_length=32, blank=False)
email = models.EmailField()
subject = models.CharField(max_length=32, blank=False)
message = models.TextField(max_length=256, blank=False)
def __str__(self):
return self.email
# forms.py
class ContactForm(forms.modelForm):
class Meta:
model = Contact
fields = ('name', 'email', 'message',)
У меня есть соответствующий views.py и шаблон, из которого я успешно отправляю и сохраняю данные формы в моей модели Contact.
# views.py
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
form.save()
email_subject = f'New contact {form.cleaned_data["email_address"]}: {form.cleaned_data["name"]}'
email_message = form.cleaned_data['message']
send_mail(email_subject, email_message, settings.CONTACT_EMAIL, settings.ADMIN_EMAIL)
return redirect('home')
form = ContactForm()
context = {'form': form}
return render(request, 'web_page/contact_page.html', context)
Однако, поскольку мое поле subject жестко закодировано и состоит из множества значений из тега html select с name="subject" и несколькими десятками опций, я хочу разместить его вместе с файлами modelForm и сохранить соответствующее значение в моей таблице Contact. Возможно ли это? Я просто хочу избежать внесения всех этих существующих записей в forms.py в качестве CHOICE моего поля subject.
Я нахожусь на кривой обучения, поэтому простите меня, если я спрашиваю что-то глупое поверх того, что я уже знаю, что должно работать...