通过Django管理站点添加数据时更改大小写(上/下)
题
我正在配置我的新项目的管理站点,我有点怀疑我该怎么办,在通过管理站点添加数据时点击“保存”,一切都转换为大写...
编辑:好的我知道.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 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()
你必须覆盖保存( )。文档中的一个例子:
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