Es es precisamente lo que quiero, es quizás no da muy bien los términos... lo que he intentado..
pues de todo lo que he leido.. tengo lo siguiente..
models.pyclass Sip(models.Model):
name = models.CharField(max_length = 80, unique=True, verbose_name='Extension del Usuario',
help_text='Debe ser mayor de 3 caracteres')
accountcode = models.CharField(max_length = 30, blank = True)
forms.pyclass AgregarCuenta(forms.ModelForm):
def clean(self):
cd = self.cleaned_data
name = cd.get('name')
secret = cd.get('secret')
if name == secret:
raise forms.ValidationError("Extension del Usuario y Contraseña no pueden ser iguales")
return cd
def clean_name(self):
cd = self.cleaned_data
name = cd.get('name')
if len(name) < 4:
raise forms.ValidationError('Nombre muy Corto')
dato = Sip.objects.get(name = name)
if dato:
raise forms.ValidationError('Extension se encuentra Registrada')
return name
def clean_secret(self):
cd = self.cleaned_data
secret = cd.get('secret')
if len(secret) < 6:
raise forms.ValidationError('Contraseña muy corta')
return secret
class Meta:
model = Sip
fields = ('name', 'callerid','secret','host','type','context','nat','dtmfmode')
views.py
def modificar_cuenta_sip(request, id_cta):
dato = get_object_or_404(Sip, pk=id_cta)
if request.POST: # Captura de datos por POST
form = AgregarCuenta(request.POST, instance = dato)
if form.is_valid():
info_enviado = True
form.save()
info = "Se Agrego Correctamente"
else:
info = "No se Agrego Cuenta"
ctx = {
'form':form,
}
return render_to_response('AgregarSip.html',ctx,context_instance=RequestContext(request))
else: # Captura de datos por GET
form = AgregarCuenta(instance = dato)
ctx = {
'form':form,
'action': id_cta
}
return render_to_response('Agregar.html',ctx,context_instance=RequestContext(request))