【发布时间】:2013-04-02 17:04:03
【问题描述】:
我的第一个问题是数据没有进入数据库。它没有显示任何错误,但也没有存储。 我的第二个问题是我正在使用下拉列表中的查询集预先填充表单字段,但它向我显示了 id(主键),我想显示其他字段。我该怎么做?
我的看法
def payment(request):
#form = jobpostForm_first()
#country_list = Country.objects.all()
if request.POST:
form = jobpostForm_detail(request.POST)
if form.is_valid():
if '_Submit' in request.POST:
form.save()
return HttpResponseRedirect('/thanks/')
else:
form = jobpostForm_detail()
#form.fields['country'].queryset = Country.objects.all()
c = {}
c.update(csrf(request))
return render_to_response('portal/display.html',{
'form':form
},context_instance=RequestContext(request))
我的模型:
class jobpostForm_detail(ModelForm):
class Meta:
model = payment_detail
fields = ('payment_type','country')
def __init__(self, *args, **kwargs):
super(jobpostForm_detail, self).__init__(*args, **kwargs)
self.fields['country'].queryset = Country.objects.all()
self.fields['payment_type'].queryset = Payment_types.objects.all()
self.helper = FormHelper()
self.helper.form_class = 'horizontal-form'
self.helper.form_id = 'id-jobpostform'
self.helper.form_class = 'blueForms'
self.helper.form_method = 'post'
self.helper.add_input(Submit('submit_addcontent', 'Pay'))
super(jobpostForm_detail, self).__init__(*args, **kwargs)
我的模板:
<form method="post" action="/portal/next/post/" class="blueForms" id="id-jobpostform">
{% csrf_token %}
{% crispy form %}
</form>
【问题讨论】:
-
在
form.save()之前尝试form.full_clean(),它应该抛出错误,如果有的话。另外,由于您正在发回请求上下文,因此您不需要执行c.update -
ok.. 它会重定向到
/thanks吗? -
不,它没有重定向,谢谢它把我重定向到/portal/next/post/..即使我删除了 if form.is_valid(): if '_Submit' in request.POST: even那么它不会保存和重定向
-
就在
request.POST之前打印request.method- 让我们看看请求方法是否实际上是POST -
不打印任何东西..这意味着它甚至不会在那个 chk 中运行
标签: django django-models django-templates django-views