ModelForm est une instance pré-préparée qui peut être appelée avec django.forms.Modelform. En créant une classe Form qui hérite de cette instance, vous pouvez faire référence à la table définie dans Models.py telle quelle. En d'autres termes, il est utilisé lorsque vous souhaitez enregistrer ou mettre à jour la base de données en saisissant un formulaire de l'utilisateur.
Par exemple, pour un modèle de données qui a "titre, heure actuelle, créateur" dans les champs, lors de la mise en œuvre de la saisie du formulaire par l'utilisateur, la tâche de dire à l'utilisateur l'heure actuelle et le créateur réduira l'UX. Cela peut être réalisé en donnant une valeur initiale au formulaire et en masquant le champ correspondant lorsque vous souhaitez donner des informations dont l'utilisateur n'a pas besoin de se soucier ou automatiquement.
forms.py
from django import forms
from .models import Event
class EventCreateForm(forms.ModelForm):
class Meta:
model = Event
fields = ('eventtitle','eventdate','location','agenda','author')
widgets={'author':forms.HiddenInput()
}
Pour expliquer brièvement à ceux qui ne connaissent pas ModelForm, différentes conditions sont fondamentalement passées dans la classe Meta. Dans la variable de modèle, spécifiez la classe Event de models.py en l'instanciant. Dans la variable fields, spécifiez les champs à inclure dans le formulaire sous forme de type de liste.
La variable widgets vous permet de spécifier diverses options telles que la modification de l'affichage d'entrée du champ en html et la spécification d'un message d'erreur.
** Cette fois, tout d'abord, le champ auteur est défini sur Entrée masquée dans ces widgets pour le masquer. ** **
views.py
from django.contrib.auth.models import User
from .forms import EventCreateForm
def createeventfunc(request):
if request.method == 'POST':
form =EventCreateForm(request.POST)
if form.is_valid():
form.save()
return redirect('Destination de transition')
return render(request,'createevent.html',{'form':form})
#Au moment de la méthode Get, exécutez ci-dessous
#default_Définissez la valeur sur le champ auteur dans les données
else:
default_data = {'author':User.objects.get(pk=request.user.pk)}
form = EventCreateForm(default_data)
return render(request,'createevent.html',{'form':form})
La valeur par défaut est donnée en argument lors de la création d'un objet de formulaire. Dans l'exemple ci-dessus, lorsque url et createeventfunc () sont appelés par la méthode Get, un objet de formulaire est créé avec author: l'id (pk) de l'utilisateur connecté comme données par défaut. Et nous rendons cet objet de formulaire. Lorsque soumettre est pressé dans le formulaire (en supposant une soumission POST), l'instruction if ci-dessus est exécutée. Tout ce que vous avez à faire est form.save () pour terminer l'enregistrement dans la base de données.
Recommended Posts