| Odissine | Bonjour à tous,  
 Voilà j'ai créé un model qui contient des infos (mots, level, image, ...)
 
 
 | Code : 
 class Word(models.Model):    objects = models.Manager()    name = models.CharField(max_length=200, db_index=True)    slug = models.SlugField(max_length=200, unique=True, blank=True)    level = models.IntegerField(default=1)    image = models.ImageField(upload_to='word/', storage=fs)    group = models.ForeignKey(Group, null=True, blank=True, on_delete=models.SET_NULL)    class Meta:        ordering = ('name',)        verbose_name = 'Mot'        verbose_name_plural = 'Mots'    # Methode d'enregistrement dans la base ... On ajoute le champ slug    def save(self, *args, **kwargs):        if not self.pk:            self.name = slugify(self.name)            self.slug = slugify(self.name)        extension = self.image.name.split("." )[-1].lower()        self.image.name = self.slug+"."+extension        super(Word, self).save(*args, **kwargs)
 | 
 
 
 Et le code Create et Update associé :
 
 
 | Code : 
 @login_required()def createWord(request):    form = WordForm()    if request.method == 'POST':        form = WordForm(request.POST, request.FILES)        if form.is_valid():            document = form.save(commit=False)            document.name = request.POST['name']            document.save()            message = "Mot ["+request.POST['name'] + "] ajouté avec succès !"            messages.success(request, message)            return redirect('games:create_word')    context = {'form': form}    return render(request, 'games/createWord.html', context)@login_required()def updateWord(request, pk):    word = Word.objects.get(id=pk)    form = WordForm(instance=word)    if request.method == 'POST':        form = WordForm(request.POST, request.FILES, instance=word)        if form.is_valid():            image_path = word.image.path            if os.path.exists(image_path) and request.FILES.get('image'):                os.remove(image_path)            document = form.save(commit=False)            document.name = request.POST['name']            document.save()            message = "Mot ["+request.POST['name'] + "] edité avec succès !"            messages.success(request, message)            return redirect('games:word')        else:            context = {'word': word, 'form': form}    else:        context = {'form': form}        return render(request, 'games/createWord.html', context)
 | 
 
 Quand je créé un "mot", je saisis donc un mot je choisis un level , une image et la catégorie ... l'enregistrement se passe bien, l'upload du fichier dans le dossier MEDIA_ROOT/word fonctionne bien (info renseignée dans le model via la valeur upload_to)
 En revanche quand je souhaite par exemple editer cette meme image, modifier juste le mot sans modifier le fichier ... pour une raison inconnu que j'arrive pas a expliquer il me change la valeur de l'image quit était word/nom.jpg en nom.jpg ... du coup forcement il va chercher MEDIA_ROOT/nom.jpg et il trouve rien
   
 La vidéo sera plus parlante je pense
 
 Si qq'un à une idée ... bien sur la solution de mettre uniquement dans le dossier MEDIA_ROOT pourquoi pas ... mais j'aurais voulu separer les types d'images par dossier d'ou le besoin d'avoir la craétion/mise à jour de ce type de fichier dans ce dossier
   
 URL DE LA VIDEO YOUTUBE :
 https://youtu.be/FruqGT0RSeQ
 
 Merci pour votre aide
   |