2017-07-25 3 views
1

Je souhaite ajouter un formulaire Post dans mon projet django et j'ai un problème avec FileFiled. Voici mon code:Django - Erreur Form FileField "Ce champ est obligatoire"

forms.py

class PostForm(forms.ModelForm): 

    class Meta: 
     model = Post 
     fields = [ 
     'author', 
     'image', 
     'title', 
     'body' 
    ] 

models.py

class Post(models.Model): 
    author = models.ForeignKey('auth.User') 
    image = models.FileField(default="", blank=False, null=False) 
    title = models.CharField(max_length=200) 
    body = models.TextField() 
    date = models.DateTimeField(default=timezone.now, null=True) 

    def approved_comments(self): 
     return self.comments.filter(approved_comment=True) 

    def __str__(self): 
     return self.title 

Si ça aide. J'ai également mis enctype="multipart/form-data en <form>

Merci pour l'aide.

Répondre

1
class Post(models.Model): 
    author = models.ForeignKey('auth.User') 
    image = models.FileField(upload_to='path') 
    title = models.CharField(max_length=200) 
    body = models.TextField() 
    date = models.DateTimeField(default=timezone.now, null=True) 

    def approved_comments(self): 
     return self.comments.filter(approved_comment=True) 

    def __str__(self): 
     return self.title 

vous devez mentionner le upload_path dans le filefield

ajouter enctype="multipart/form-data à votre formulaire

et en vue d'obtenir les fichiers

PostForm(request.POST, request.FILES) 

si vous avez besoin Rendre le champ facultatif

class PostForm(forms.ModelForm): 
image = forms.FileField(required=False) 
    class Meta: 
     model = Post 
     fields = [ 
     'author', 
     'image', 
     'title', 
     'body' 
    ] 
+0

Ça ne marche pas! THX! – jestembotem

+0

N'oubliez pas d'accepter la réponse si cela a aidé mon frère. – Exprator

1

De l'docs

Vous devez passer request.FILES à la forme liée.

bound_form = PostForm(request.POST, request.FILES)