验证后,在django中更改表单排除值

时间:2013-08-24 23:01:12

标签: python django

我在模型中有以下表格。

class Article(models.Model):
    title = models.CharField(max_length=100, db_column='title')
    url = models.CharField(max_length=100, db_column='url')
    category = models.ForeignKey(Category, db_column='category')
    description = models.TextField(db_column='description')
    createDate = models.DateTimeField(db_column='createDate')

    def __unicode__(self):
        return self.title

    class Meta:
        db_table = 'articles'
        ordering = ['createDate']

表格

class ArticleForm(forms.ModelForm):
    class Meta:
        model = Article
        fields = ('title', 'description', 'category')

我想要的是通过小写清理标题来验证表单和更改URL的值。 我怎么能做到这一点? 我看来url是排除值,所以如何在验证后在表单中更改它?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在保存以下文章时提供自定义网址:

class Article(models.Model):
    ...

    def save(self, *args, **kwargs):
        if not self.url:
            self.url = self.title.lower()

        super(Article, self).save(*args, **kwargs)