Claro por ejemplo tengo estos modelos:
Código Python:
Ver originalclass Movimientos(models.Model):
fecha_registro = models.DateField(null=True, blank=True)
fecha_solicitante = models.DateField(null=True, blank=True)
fecha_aceptado = models.DateField(null=True, blank=True)
class Meta:
db_table = u'movimientos'
class Inscripciones(models.Model):
matricula = models.CharField(max_length=135, blank=True)
curp = models.CharField(max_length=135)
nombres = models.CharField(max_length=300)
primer_apellido = models.CharField(max_length=300)
segundo_apellido = models.CharField(max_length=300, blank=True)
movimientos = models.ForeignKey(Movimientos)
contacto = models.ForeignKey('Contacto')
carrera = models.ManyToManyField(Carreras)
carrera.help_text=''
def __unicode__(self):
return u'%s %s %s' % (self.nombres, self.primer_apellido, self.segundo_apellido)
class Meta:
db_table = u'inscripciones'
class Contacto(models.Model):
email = models.CharField(max_length=135)
facebook = models.CharField(max_length=135, blank=True)
twitter = models.CharField(max_length=135, blank=True)
class Meta:
db_table = u'contacto'
ya están relacionados, use inspectdb en la base de datos.
creo el forms.py conteniendo lo siguiente:
from django import forms
from miapp.apps.inscripciones.models import *
from django.utils.safestring import mark_safe # Clase Personalizada
# Checks
class CheckboxSelectMultipleP(forms.CheckboxSelectMultiple):
def render(self, *args, **kwargs):
output = super(CheckboxSelectMultipleP, self).render(*args,**kwargs)
return mark_safe(output.replace(u'<ul>', u'').replace(u'</ul>', u'').replace(u'<li>', u'<p>').replace(u'</li>', u'</p>'))
#
class registroForm(forms.ModelForm):
class Meta:
model = Inscripciones
widgets = {
'curp' : forms.TextInput(attrs={'onkeyup':'aMays(event,this)'}),
'carrera': CheckboxSelectMultipleP(),
}
creo un vista para guardalo (omiti la parte de los imports)
Código Python:
Ver originaldef registro_view(request):
if request.method == "POST":
form = registroForm(request.POST)
info = "Inicializando"
if form.is_valid():
form.save()
info = "Se guardo el registro"
else:
info = "Datos incorrectos"
form = registroForm()
ctx = {'registroForm': registroForm , 'informacion': info } #
return render_to_response('registro/index.html', ctx , context_instance=RequestContext(request))
else:
form = registroForm()
ctx = {'registroForm': registroForm }
return render_to_response('registro/index.html', ctx , context_instance=RequestContext(request))
en mi index.html li muestro en un form
Código HTML:
Ver original<form action="." id= "formulario" method = "POST"> {% csrf_token %}
{{ registroForm.as_p }}
<input type="submit" value = "Preregistrarme" class="btn btn-primary" >
el problema que tengo es que a la hora de mostrar el formulario en el index.html me salen los unas listas desplegables, intente cambiarlo con un widget 'contacto': forms.TextInput(), 'movimiento': forms.TextInput(), pero al momento de llenarlos me dice mi error "Datos icorrectos", como podria guardarlos?
De antemano muchas gracias por tú ayuda.