2

変更してはいけないファイルでモデルを作成しようとしています。ただし、ファイルのコメントは可能です。

これが私がしたことですが、コメントを変更することはできません。(参照ボタンを使用して)新しいファイルが送信されたかどうかをテストし、この場合のみ、モデルの新しいインスタンスを作成するにはどうすればよいですか?新しいファイルがアップロードされない場合は、コメントを更新してください。

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())
4

1 に答える 1

8
if 'file' in form.changed_data:
     """
     File is changed
     """
     raise forms.ValidationError("No, don't change the file because blah blah")
else:
     """
     File is not changed
     """
于 2009-10-27T17:18:06.497 に答える