et j'ai simple ModelForm pour le paquetla validation des données dans Django ModelForm
from models import Package
from django import forms
class PackageForm(forms.ModelForm):
class Meta:
model= Package
fields= ['name', 'version', 'url', 'description', 'arch', 'dependancies', 'conflicts', 'file']
Comment puis-je demander au ModelForm de vérifier, dans la validation, si l'extension de fichier (classe est FileField) est .sh par exemple?
Y a-t-il un moyen de mettre cela en forme de modèle? de puis-je seulement le gérer dans une vue?
Merci
Edit: Aussi, oublié de demander, le modèle a un foreignkey au auth modèle utilisateur ... qui va contenir l'utilisateur actuel .. comment peut ModelForm gérer cela?
Merci encore
Merci pour la réponse! Je reçois la main sur ce .. même si je rencontre un problème
paquet contient un foreignkey à django.contrib.auth.models modèle utilisateur, Lorsque le formulaire est traité comment puis-je dire au ModelForm de passer l'utilisateur en cours objet à l'instance du modèle? je pensais que cela ...
views.py
def add(request):
if request.method == 'POST':
the_model= PackageForm(request.user, request.POST, request.FILES)
if the_model.is_valid():
the_model.save()
i la écrasent les dans ModelForm initialisation:
from models import Package
from django import forms
class PackageForm(forms.ModelForm):
def __init__(self,user,*args,**kwargs):
super (PackageForm,self).__init__(*args,**kwargs) # populates the post
self.fields['maintainer_name'].queryset = user # adds the user object passed by add in views.py
class Meta:
model= Package
fields= ['name', 'version', 'url', 'description', 'arch', 'dependancies', 'conflicts', 'file']
manteiner_name est l'objet ForeignKey (User) ... il me donne un keyerror :(ce n'est pas bon ... Des solutions?
Merci!
C'est génial! : D je vais utiliser ça: D mais dans le cas d'un fichier, est-ce que 'value' est un objet File? Si oui, comment puis-je évaluer son extension? – PirosB3
value.name devrait être le nom, je pense. –