Django错误:没有';t返回HttpResponse对象。它没有返回任何结果
我有以下表格:Django错误:没有';t返回HttpResponse对象。它没有返回任何结果,django,django-forms,Django,Django Forms,我有以下表格: class PrestataireProfilForm(forms.ModelForm): class Meta: model = Prestataire fields = ["user", "name", "address", "phone", "fax", "city"] def __init__(self, *args, **kwargs): super(PrestataireProfilForm, self
class PrestataireProfilForm(forms.ModelForm):
class Meta:
model = Prestataire
fields = ["user", "name", "address", "phone", "fax", "city"]
def __init__(self, *args, **kwargs):
super(PrestataireProfilForm, self).__init__(*args, **kwargs)
self.fields['city'].widget.attrs.update({'class' : 'custom-select'})
self.fields['city'].label = ""
这是我的观点:
@login_required
def prestataire_profil(request):
prestataire = Prestataire.objects.filter(user=request.user).first()
is_prestataire = request.user.groups.filter(name='Prestataire').exists()
form = PrestataireProfilForm(request.POST or None, instance=prestataire)
if request.method == 'POST':
context = {
'profil': prestataire,
'is_prestataire': is_prestataire,
'form': form
}
if form.is_valid():
prestataire = form.save(commit=False)
prestataire.save()
context = {
'profil': prestataire,
'is_prestataire': is_prestataire
}
# return render(request, 'dashboard/prestataires/profil.html', context)
return redirect('prestataire_profil')
else:
context = {
'profil': prestataire,
'is_prestataire': is_prestataire,
'form': form
}
return render(request, 'dashboard/prestataires/profil.html', context)
这是我的html表单:
<form method='POST'>
{% csrf_token %}
<div class="form-group row">
<label for="name" class="col-4 col-form-label">Nom d'utilisateur</label>
<div class="col-8">
<input value="{{ profil.user.username }}" id="name" name="name" placeholder="Nom d'utilisateur" class="form-control here" required="required" type="text" disabled>
</div>
</div>
<div class="form-group row">
<label for="name" class="col-4 col-form-label">Nom*</label>
<div class="col-8">
<input value="{{ profil.user.last_name }}" id="name" name="name" placeholder="Nom" class="form-control here" required="required" type="text">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-4 col-form-label">Prénom*</label>
<div class="col-8">
<input value="{{ profil.user.first_name }}" id="name" name="name" placeholder="Prénom" class="form-control here" required="required" type="text">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-4 col-form-label">Raison sociale*</label>
<div class="col-8">
<input value="{{ profil.name }}" id="name" name="name" placeholder="Raison sociale" class="form-control here" required="required" type="text">
</div>
</div>
<div class="form-group row">
<label for="address" class="col-4 col-form-label">Adresse</label>
<div class="col-8">
<input value="{{ profil.address }}" id="address" name="address" placeholder="Adresse" class="form-control here" type="text">
</div>
</div>
<div class="form-group row mb-0">
<label for="address" class="col-4 col-form-label">Ville</label>
<div class="col-8">
{{ form.city|as_crispy_field }}
</div>
</div>
<div class="form-group row">
<label for="phone" class="col-4 col-form-label">Téléphone</label>
<div class="col-8">
<input id="phone" name="phone" placeholder="Téléphone" class="form-control here" type="text">
</div>
</div>
<div class="form-group row">
<label for="fax" class="col-4 col-form-label">Fax</label>
<div class="col-8">
<input value="" id="fax" name="fax" placeholder="Fax" class="form-control here" type="text">
</div>
</div>
<div class="form-group row">
<div class="offset-4 col-8">
<button name="submit" type="submit" class="btn btn-primary">Update My Profile</button>
</div>
</div>
</form>
{%csrf_令牌%}
使用名称
名称*
名称*
社会理由*
阿迪斯
维尔
{{form.city}as|u crispy_field}
电话
传真
更新我的个人资料
单击“提交”按钮时,会出现以下错误:
异常类型:ValueError
异常值:view dashboard.views.prestataire_profil未返回HttpResponse对象。它没有返回任何结果
数据不会更改,调试中也没有任何信息可以查看出了什么问题。正如您在视图中所注意到的,我对返回渲染线进行了注释。我将其更改为返回重定向,但问题相同!
请帮忙!谢谢。敬礼
我认为你的表格是无效的(你检查过了吗?)。如果form.is\u valid(),您处理了案例,但是如果它不是呢?那你就什么都不退了!因此,如果在所有情况下都要重定向到prestataire\u profil
,则应执行以下操作:
@需要登录\u
def prestataire_profil(请求):
[...]
如果request.method==“POST”:
[...]
如果form.is_有效():
做你自己的事
#return redirect('prestataire_profil')在这种情况下如何实现try-catch?如果发生这种情况,我想给出一条错误消息,如何检查表单是否有效?我不是说代码,我已经使用print语句进行了检查,但是如何检查我在表单中输入的数据是否有效?因为我所做的只是更改一些字符串,没有奇怪的数据,没有错误的数据类型