J'essaie de faire un modèle avec un fichier qui ne devrait pas être modifié. Mais le commentaire du fichier peut être.Comment vérifier si un FileField a été modifié dans l'Admin de Django?
Voici ce que j'ai fait, mais nous ne pouvons pas modifier le commentaire. Comment puis-je tester si un nouveau fichier (en utilisant le bouton Parcourir) a été envoyé et dans ce cas uniquement, créer une nouvelle instance du modèle? Si aucun téléchargement d'un nouveau fichier, mettez à jour le commentaire.
admin.py
class CGUAdminForm(forms.ModelForm):
class Meta:
model = ConditionsUtilisation
def clean_file(self):
if self.instance and self.instance.pk is not None:
raise forms.ValidationError(_(u'You cannot modify the file. Thank you to create a new instance.'))
# do something that validates your data
return self.cleaned_data["file"]
class CGUAdmin(admin.ModelAdmin):
form = CGUAdminForm
admin.site.register(ConditionsUtilisation, CGUAdmin)
models.py
class ConditionsUtilisation(models.Model):
date = models.DateField(_(u'Date d\'upload'), editable=False, auto_now_add=True)
comment = models.TextField(_(u'Commentaire de modification'))
file = models.FileField(_(u'CGU'), upload_to='subscription/cgu/', storage=CGUFileSystemStorage())
Un grand merci est exactement ça :) – Natim