Tengo dos modelos en Django: Usuario (predefinido por Django) y Perfil de usuario. Los dos están conectados a través de una clave externa. Estoy creando un formulario que permite a un cliente editar su perfil de usuario. Como tal, este formulario se basará en los dos modelos mencionados.¿Cómo se escribe un método para guardar formularios en django?
¿Cómo creo un método save() para este formulario? ¿Cuáles son los pasos/requisitos para completar la función de guardar?
Esto es lo que tengo hasta ahora en forms.py:
class UserChangeForm(forms.Form):
#fields corresponding to User Model
email = forms.EmailField(required=True)
first_name = forms.CharField(max_length = 30)
last_name = forms.CharField(max_length = 30)
password1 = forms.CharField(max_length=30, widget=forms.PasswordInput)
password2 = forms.CharField(max_length=30, widget=forms.PasswordInput)
#fields corresponding to UserProfile Model
gender = forms.CharField(max_length = 30, widget=forms.Select)
year = forms.CharField(max_length = 30, widget=forms.Select)
location = forms.CharField(max_length = 30, widget=forms.Select)
class Meta:
fields = ("username", "email", "password1", "password2", "location", "gender", "year", "first_name", "last_name")
def save(self):
data = self.cleaned_data
# What to do next over here?
¿Es esta una buena salida o Alguien puede recomendar gustaría cambiar esto antes de empezar a escribir la función de guardar()?
Por qué no usar 'ModelForm's? –
¿Puedo crear un ModelForm basado en dos modelos? Si es así, ¿cómo voy a hacer eso? – goelv