我正在配置我的新项目的管理站点,我有点怀疑我应该怎么做,通过管理站点添加数据时点击“保存”,所有内容都转换为大写......
编辑:好的,我知道 .upper 属性,我做了一个视图,我知道该怎么做,但我想知道管理站点上是否有任何属性可用于字段配置: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,则可以保证您的代码在添加这些参数时会自动支持它们。
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()