如何在Django中charField的末尾去除空格(trim)?
这是我的模型,如您所见,我已经尝试过使用干净的方法,但是这些方法永远不会运行。
我也尝试过这样做name.strip()
,models.charField().strip()
但是这些也不起作用。
有没有办法强制为我自动修剪charField?
谢谢。
from django.db import models
from django.forms import ModelForm
from django.core.exceptions import ValidationError
import datetime
class Employee(models.Model):
"""(Workers, Staff, etc)"""
name = models.CharField(blank=True, null=True, max_length=100)
def save(self, *args, **kwargs):
try:
# This line doesn't do anything??
#self.full_clean()
Employee.clean(self)
except ValidationError, e:
print e.message_dict
super(Employee, self).save(*args, **kwargs) # Real save
# If I uncomment this, I get an TypeError: unsubscriptable object
#def clean(self):
# return self.clean['name'].strip()
def __unicode__(self):
return self.name
class Meta:
verbose_name_plural = 'Employees'
class Admin:pass
class EmployeeForm(ModelForm):
class Meta:
model = Employee
# I have no idea if this method is being called or not
def full_clean(self):
return super(Employee), self.clean().strip()
#return self.clean['name'].strip()
编辑:将代码更新为我的最新版本。我不确定我在做什么错,因为它仍然没有剥离空白(修剪)名称字段。
必须调用模型清洗(这不是自动的),因此请self.full_clean()
在保存方法中放置一些模型清洗。
http://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.full_clean
对于您的表单,您需要返回剥离后的清理数据。
return self.cleaned_data['name'].strip()
我以某种方式认为您只是尝试做一堆行不通的事情。请记住,表单和模型是两件截然不同的东西。
查看有关如何验证表单的表单文档
html" target="_blank">http://docs.djangoproject.com/en/dev/ref/forms/validation/
super(Employee), self.clean().strip() makes no sense at all!
这是您的固定代码:
class Employee(models.Model):
"""(Workers, Staff, etc)"""
name = models.CharField(blank=True, null=True, max_length=100)
def save(self, *args, **kwargs):
self.full_clean() # performs regular validation then clean()
super(Employee, self).save(*args, **kwargs)
def clean(self):
"""
Custom validation (read docs)
PS: why do you have null=True on charfield?
we could avoid the check for name
"""
if self.name:
self.name = self.name.strip()
class EmployeeForm(ModelForm):
class Meta:
model = Employee
def clean_name(self):
"""
If somebody enters into this form ' hello ',
the extra whitespace will be stripped.
"""
return self.cleaned_data.get('name', '').strip()
问题内容: 和有什么区别?该文档说应该用于较小的字符串,而应用于较大的字符串。好的,但是“小”和“大”之间的界线在哪里?这到底是怎么回事? 问题答案: (或类似的)之间的区别是-通常以最大长度来指定,并且在性能或存储方面可能更有效-和(或类似)类型-这些通常仅受硬编码实现限制(而不是数据库架构)。 PostgreSQL 9特别指出“这三种类型之间没有性能差异”,但是AFAIK在MySQL等方面存在
本文向大家介绍JavaScript 修剪空白,包括了JavaScript 修剪空白的使用技巧和注意事项,需要的朋友参考一下 示例 要从字符串的边缘修剪空格,请使用String.prototype.trim: 许多JavaScript引擎(而非Internet Explorer)实现了非标准trimLeft和trimRight方法。目前,在该过程的第1阶段,有一项提议是标准化trimStart和tr
问题内容: 是否有Python函数可以从字符串中修剪空白(空格和制表符)? 例如:→ 问题答案: 对于两侧的空格,请使用: 对于右侧的空格,请使用: 对于左侧的空格: 正如thedz所指出的,您可以提供一个参数来将任意字符剥离到以下任何函数中: 这将去除任何空间,,,或从左侧字符,右手侧,或该字符串的两侧。 上面的示例仅从字符串的左侧和右侧删除字符串。如果还要从字符串中间删除字符,请尝试: 那应该
问题内容: 是否有Python函数可以从字符串中修剪空格(空格和制表符)? 例如: 问题答案: 两侧的空格: 右侧的空格: 左侧的空白: 正如thedz所指出的,你可以提供一个参数来将任意字符剥离到以下任何函数中: 这将去除任何空间,,或从左侧字符,右手侧,或该字符串的两侧。 上面的示例仅从字符串的左侧和右侧删除字符串。如果还要从字符串中间删除字符,请尝试: 那应该打印出来:
问题内容: 假设$ 2是我的变量。我尝试过 至 但是它从打印某些内容到什么都不打印。 问题答案: 您正在打印的结果,但是进行的就地修改,而不是返回修改后的副本。致电,然后打印:
我有一个pdf包含一些数据,后面是一些空白。我不知道数据有多大,但我想删掉数据后面的空格 有没有一种方法可以剪裁/修剪新文档中每一页的空格?此PDF包含矢量图形。 我使用iTextPDF,但可以切换到任何Java库(mavenized,Apache许可优先)