La forme modèle de Django était incroyable.

Un formulaire qui définit les valeurs du formulaire sur le modèle. C'est la forme modèle

Si c'est un cadre normal Lorsque vous enregistrez le modèle dans la base de données, vous définissez la valeur dans chaque champ.

SomeCreateProcess.py


#Comment régler normalement
someModel.name = name
someModel.user = user
....

Django Model Form résout un tel problème. Suguremono qui définit automatiquement la valeur reçue de la demande dans le modèle et même l'enregistre

Facile à mettre en œuvre. Héritez simplement ModeForm et mettez la métaclasse à l'intérieur.

modelsModelForm.py


from django import forms

from memFrame.models.SomeModel import SomeModel 

'''
Formulaire modèle pour Honya Honya
@author Prautla
'''
class PictUploadForm(forms.ModelForm):
    class Meta:
        model = SomeModel #Fixez un pointeur sur le modèle
        fields = ['name', 'user' ....]   #Déclarer un champ

En fait utiliser

Le reste est facile. Passez simplement le corps POST de la requête

SomeCreateProcess.py


someModelForm:SomeModelForm= SomeModelForm(request.POST, instance=SomeModel()) #dans ce cas"instance="Est facultatif
someModelForm.save()

Passer la valeur non passée du POST à l'argument d'instance Vous pouvez le définir librement en le plaçant dans le modèle.

SomeCreateProcess.py


obj:SomeModel = SomeModel()
obj.mailAddress = "[email protected]"
obj.sex = "Homme"

someModelForm:SomeModelForm= SomeModelForm(request.POST, instance=obj)
someModelForm.save()

Recommended Posts

La forme modèle de Django était incroyable.
Avantages d'affiner le modèle de Django
Limiter les vues à l'aide du modèle d'autorisation de Django
[Ma note] Modèle utilisateur personnalisé de Django