【发布时间】:2011-01-07 02:21:36
【问题描述】:
我正在编写一个 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 以使用代码。
【问题讨论】:
标签: python django django-admin django-templates django-urls