Formulario Actualizar Datos Django

killerbruf

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:

killerbruf

Tema solucionado ya podéis cerrar esto!

pD: Si alguien llega aqui con el mismo problema que recupere los forms con el request.POST y luego haga un save del objeto!

2

Usuarios habituales

  • killerbruf