新しいプロジェクトの管理サイトを構成していますが、管理サイトからデータを追加するときに「保存」を押すと、すべてが大文字に変換されるため、どうすればよいか少し疑問があります...
編集:わかりました.upperプロパティを知っています.upperプロパティを知っています.
admin セクションに保存するときに大文字のみに変換することが目標の場合は、カスタム検証を使用してフォームを作成し、大文字と小文字を変更する必要があります。
class MyArticleAdminForm(forms.ModelForm):
class Meta:
model = Article
def clean_name(self):
return self.cleaned_data["name"].upper()
値を常に大文字にすることが目標の場合は、モデル フィールドでsave をオーバーライドする必要があります。
class Blog(models.Model):
name = models.CharField(max_length=100)
def save(self, force_insert=False, force_update=False):
self.name = self.name.upper()
super(Blog, self).save(force_insert, force_update)
ドキュメントの更新された例では、args、kwargs を使用して次のように渡すことを提案しています。
Django は、組み込みのモデル メソッドの機能を拡張し、新しい引数を追加します。メソッド定義で *args、**kwargs を使用すると、それらの引数が追加されたときにコードがそれらの引数を自動的にサポートすることが保証されます。
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
def save(self, *args, **kwargs):
do_something()
super(Blog, self).save( *args, **kwargs) # Call the "real" save() method.
do_something_else()
save()をオーバーライドする必要があります。ドキュメントからの例:
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
def save(self, force_insert=False, force_update=False):
do_something()
super(Blog, self).save(force_insert, force_update) # Call the "real" save() method.
do_something_else()