English 中文(简体)
将窗体输入数据强制向大写
原标题:coercing form input data to uppercase

在试图强制将输入数据格式化为大写时,我收到属性错误 " NoneType 对象没有属性条 " 。

class PostPageForm(ModelForm):
    class Meta: 
        model = PostPage
    def clean(self):
        return dict([(k, v.strip().upper()) for k, v in self.cleaned_data.items()])

和我的模型:

class PostPage(models.Model):
    client = models.CharField(max_length=50, choices=CLIENT_CHOICES)
    job_number = models.CharField(max_length=30, unique=True, blank=False, null=False)
    job_name = models.CharField(max_length=64, unique=False, blank=False, null=False)
    page_type = models.CharField(max_length=50, default= POST )
    create_date = models.DateField(("Date"), default=datetime.date.today)
    contact = models.ForeignKey(UserProfile)
    contact2 = models.ForeignKey(UserProfile, related_name= + , blank=True, null=True)
    contact3 = models.ForeignKey(UserProfile, related_name= + , blank=True, null=True)
    contact4 = models.ForeignKey(UserProfile, related_name= + , blank=True, null=True)

    def __unicode__ (self):
        return u %s %s %s  % (self.client, self.job_number, self.job_name)

    class Admin: 
         pass

    class Meta:
        permissions = (
            ( view_postpage ,  View postpage ),
        )

我认为格式代码中“清洁”方法的重置需要根据模型的回报值进行重新配置。 我只是不知道该如何改变。

最佳回答

这不是一个好办法,要做到这一点:它试图为 .upper 中的每个对象调用 cleaned_data 中的 , none 和任何其他类型。

解决之道是:

return dict((k, v.strip().upper()) for k, v in self.cleaned_data.iteritems() if isinstance(v, basestring))

但为什么你需要这个呢?也许最好像现在这样保存字符串, 并且只保存大写字母的字符串?

问题回答

暂无回答




相关问题
How to get two random records with Django

How do I get two distinct random records using Django? I ve seen questions about how to get one but I need to get two random records and they must differ.

Moving (very old) Zope/Plone Site to Django

I am ask to move data from a (now offline) site driven by Plone to a new Django site. These are the version informations I have: Zope Version (unreleased version, python 2.1.3 ) Python Version 2.1....

Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

Flexible pagination in Django

I d like to implement pagination such that I can allow the user to choose the number of records per page such as 10, 25, 50 etc. How should I go about this? Is there an app I can add onto my project ...

is it convenient to urlencode all next parameters? - django

While writing code, it is pretty common to request a page with an appended "next" query string argument. For instance, in the following template code next points back to the page the user is on: &...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...