我想更新现有对象时遇到问题。。。在另一个项目中,我使用了类似的代码行,但现在,当我要保存实际信息时,它不起作用。。。
更奇怪的是…最后说当前路径editEstHab/与这些路径都不匹配,但当我搜索我的项目时,我唯一使用editEstHab/的时间是在urls.py。。。所以…帮助:(我不知道我的错误是什么。
型号.py
class habitacion(models.Model):
nroHabitacion = models.IntegerField(null=False)
tipoHabitacion = models.CharField(max_length=70, null=True)
tipoCama = models.ForeignKey(tipoCama, on_delete=models.CASCADE, blank=True, null=False)
accesorios = models.CharField(max_length=70, null=True)
precio = models.IntegerField(null=False)
estado_habitacion = models.ForeignKey(estadoHab, on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return self.tipoHabitacion
表单.py
class UpdateHabForm(forms.ModelForm):
class Meta:
model = habitacion
fields = ['estado_habitacion']
视图.py
def editHab(request,id_habitacion):
# llamando datos de habitacion seleccionada
hab = habitacion.objects.get(id=id_habitacion)
if request.method == 'GET':
form = UpdateHabForm(instance=hab)
else:
form = UpdateHabForm(request.POST, instance=hab)
if form.is_valid():
form.save()
context = {
'form' : form,
'hab' : hab
}
return render(request,"editEstHab.html",context)
urls.py
path('editEstHab/<id_habitacion>', views.editHab, name="editEstHab"),
错误屏幕截图
错误似乎是POST请求的url
如果将html表单的action
属性留空,则应该可以正常工作
<form class="" action="" method="post">
{% csrf_token %}
{% for field in form %}
{{field}}
{% endfor %}
<button type="submit" name="button">UPDATE</button>
</form>