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)