Я пишу действия администратора Django для контактов по электронной почте.Действие определяется следующим образом:
def email_selected(self,request,queryset):
rep_list = []
for each in queryset:
reps = CorporatePerson.objects.filter(company_id = Company.objects.get(name=each.name))
contact_reps = reps.filter(is_contact=True)
for rep in contact_reps:
rep_list.append(rep)
return email_form(request,queryset,rep_list)
email_form существует как представление и заполняет шаблон этим кодом:
def email_form(request,queryset,rep_list):
if request.method == 'POST':
form = EmailForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
send_mail(
cd['subject'],
cd['message'],
cd.get('email','noreply@localboast'),['redacted@email.com'],
)
return HttpResponseRedirect('thanks')
else:
form = EmailForm()
return render_to_response('corpware/admin/email-form.html',{'form':form,})
, а шаблон существует следующим образом:
<body>
<form action="/process_mail/" method="post">
<table>
{{ form.as_table }}
</table>
<input type = "submit" value = "Submit">
</form>
</body>
/ process_mail / жестко связан с другим представлением в urls.py, что является проблемой.Мне бы очень хотелось, чтобы мне не приходилось использовать <form action="/process_mail/" method="post">
, но, к сожалению, я не могу отправить пользовательские вводы в обработчик представления без интерфейса администратора для перезагружаемой модели на своем месте (Когда я нажимаюпри нажатии кнопки отправки появляется интерфейс администрирования, который мне не нужен.)
Есть ли способ, которым я мог бы сделать форму POST для себя (<form action="" method="post">
), чтобы я мог обрабатывать входные данные, полученные вemail_form?Пытаться обрабатывать ввод с помощью посторонних URL-адресов и ненужных функций меня беспокоит, так как я жестко кодирую URL-адреса для работы с кодом.