Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 验证后更改django中的表单排除值_Python_Django - Fatal编程技术网

Python 验证后更改django中的表单排除值

Python 验证后更改django中的表单排除值,python,django,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 = mo

我有以下基于模型的表格

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']
形式

我想要的是验证表单并通过将标题小写来更改url的值。 我怎样才能做到这一点? 我认为url是排除值,所以在验证后如何在表单中更改它


谢谢。

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

class Article(models.Model):
    ...

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

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

保存以下文章时,可以提供自定义URL:

class Article(models.Model):
    ...

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

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

这将适用于新实例,但编辑现有文章如何,比如更改标题。在这种情况下,URL将不会得到更新。您可以删除
if
语句以始终覆盖URL。谢谢您的帮助。我也找到了另一种方法。form=Article(request.POST)如果form.is_valid():Article=form.save(commit=False)Article.url=Article.title.lower()Article.save()这对新实例有效,但编辑现有文章如何,比如更改标题。在这种情况下,URL将不会得到更新。您可以删除
if
语句以始终覆盖URL。谢谢您的帮助。我也找到了另一种方法。如果form.is_valid():Article=form.save(commit=False)Article.url=Article.title.lower()Article.save(),则form=Article(request.POST)