我想更新现有对象时遇到问题...在另一个项目中,我使用了类似的代码行,但是现在,当我要保存实际信息时,它不起作用。
更奇怪的是...最后说当前路径editEstHab /与其中任何一个都不匹配。,但是当我搜索项目时,这是唯一一次我在urls.py中使用 editEstHab / 。 所以...帮助:(我不知道我的错误是什么。
models.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
forms.py
class UpdateHabForm(forms.ModelForm):
class Meta:
model = habitacion
fields = ['estado_habitacion']
views.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"),
答案 0 :(得分:0)
似乎错误是POST请求的网址
如果将html表单的action
属性保留为空白,则它应该可以正常工作
<form class="" action="" method="post">
{% csrf_token %}
{% for field in form %}
{{field}}
{% endfor %}
<button type="submit" name="button">UPDATE</button>
</form>