ここで何かが足りないかもしれませんが、django docs によると、管理フォームから送信された値を clean() メソッド内でオーバーライドできるはずです。ジャンゴのドキュメントから
def clean(self):
from django.core.exceptions import ValidationError
# Don't allow draft entries to have a pub_date.
if self.status == 'draft' and self.pub_date is not None:
raise ValidationError('Draft entries may not have a publication date.')
# Set the pub_date for published items if it hasn't been set already.
if self.status == 'published' and self.pub_date is None:
self.pub_date = datetime.date.today()
私は自分のコードを取り除き、管理者内からここで基本的な例を試しています
モデル.py
class Test(models.Model):
name = models.CharField(max_length=255,)
def clean(self):
self.name = 'Robin Hood'
return self
したがって、新しいテスト レコードを追加しようとするときに、名前フィールドを空のままにしておくと、クリーン メソッドから値を取得して保存する必要があります。
ただし、フォームは検証されず、フィールドは空のままです。
ここで露骨に明らかな何かが欠けていますか?