我正在配置我的新项目的管理站点,我有点怀疑我该怎么办,在通过管理站点添加数据时点击“保存”,一切都转换为大写...

编辑:好的我知道.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()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top