Django管理サイトからデータを追加する際に大文字と小文字を変更します
質問
新しいプロジェクトの管理サイトを設定していますが、管理サイトからデータを追加するときに「保存」をクリックすると、すべてが大文字に変換されます...
編集:わかりました。 p>
解決
管理セクションで保存するときに、大文字に変換することのみを目標とする場合は、カスタム検証を使用してフォームを作成して、ケースを変更します:
class MyArticleAdminForm(forms.ModelForm):
class Meta:
model = Article
def clean_name(self):
return self.cleaned_data["name"].upper()
目標を常に大文字にする場合は、モデルフィールドで保存を上書き:
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 in メソッド定義、あなたのコードが保証されます それらの引数が追加されたときに自動的にサポートします。
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()
override 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()
所属していません StackOverflow