Buenos días a todos , necesito ayuda con una tontería que no se solucionarla y me esta volviendo loco. La cosa es que es la primera vez que estamos tocando Django en la uni y estoy haciendo una pagina de evaluación del profesorado bastante simple. Mi problema que no se resolver es que quiero actualizar la información de un profesor en concreto de la BBDD a traves de un formulario , me recupera los datos bien pero no consigo que los actualice de ninguna manera. Si alguien se lo mira , muchas gracias de antemano. Yo se que el fallo tiene que estar en el views o el .html pero nose como solucionarlo...
Codigo urls:
# Teachers:
url(r'^teachers/$', teacher, name='teachers'),
url(r'^teachers/add/$', teacher_add, name='add_teacher'),
url(r'^teachers/update/(?P<teacher_id>\w+)/$', teacher_update, name='update_teacher'),
url(r'^teachers/(?P<teacher_id>\w+)/$', singular_teacher),
Codigo forms:
class AddTeacher(ModelForm):
class Meta:
model = Teacher
exclude = ('idTeacher',)
Codigo views:
def teacher_update (request,teacher_id):
teacher = get_object_or_404(Teacher,idTeacher=teacher_id)
form = AddTeacher(data = request.POST or None , instance=teacher)
if form.is_valid():
update_teacher = form.save()
return HttpResponseRedirect('/teachers/')
else:
form = AddTeacher
return render(request, "teacher_update.html", {
'form': form,'titlehead': 'Teacher Avaluation',
'pagetitle': 'Evaluacio de docencia', 'idteacher': teacher.idTeacher, 'nameteacher': teacher.name, 'sex': teacher.sexe,'nationality': teacher.nationality
},context_instance = RequestContext(request))
Codigo models:
class Teacher(models.Model):
idTeacher = models.IntegerField(primary_key=True)
name = models.CharField(max_length=25)
sexe = models.CharField(max_length=1)
nationality = models.CharField(max_length=25)
def __unicode__(self):
return self.name
Codigo teacher_update.html:
{% extends "templateBase.html" %}
{% block content %}
<p>Professor:</p>
<form method="post" action="/teachers/update/{{ idteacher }}/">
{% csrf_token %}
</p>
Name : <input type="text" value="{{ nameteacher }}" name="name teacher"/><p>
Sex : <input type="text" value="{{ sex }}" name="sexe"/><p>
Nationality : <input type="text" value="{{ nationality }}" name="nationality"/><p>
<p>
<input type="submit" value="Actualitzar"/> <input type="button" value="Torna enrrere" onclick="history.back()"/>
</form>
{% endblock %}
Pagina update: