django form 验证

it2022-05-08  11

其实这里也还是要写django form 的验证,只是有一个应用场景。

这几天老大要我开始搞一个新项目 ~~ >.<!  django停了很长一段时间,一下子就忘了好多。

做一个article 的app 

class Article(models.Model): author = models.ForeignKey(User, verbose_name=_('User')) subject = models.CharField(max_length=250,verbose_name=_('Subject')) content = models.TextField(verbose_name=_('Content'))

 

class ArticleForm(ModelForm): subject = forms.CharField(label=_("subject"), required=True) content = forms.CharField(widget=forms.Textarea) class Meta: model = Article list = ('subject','content','author')

我们会看到author是一个外键来的,这个外键要从session中得到的。

所以看下面的示例代码 :

def add(request): context ={} context['article_form'] = ArticleForm() if request.method == 'POST': #save the author automatic article_form = ArticleForm(request.POST) if article_form.is_valid(): article_form.save()

如果按上面那样写,是无法通过验证的。因为这个时候传输过来的author是空的。

那怎么处理呢?

def add(request): context ={} context['article_form'] = ArticleForm() if request.method == 'POST': #save the author automatic post_values = request.POST.copy() post_values['author'] = request.juser.pk article_form = ArticleForm(post_values) if article_form.is_valid(): article_form.save()

这样子就可以。我不知道这样的解决方法是不是好?如果有哪位碰巧看到我的文章的话,可以给个意见,谢谢。而且我也觉得这样写不美观 。没办法,先这样吧。

 

 

 

转载于:https://www.cnblogs.com/yeelone/archive/2012/11/14/2770280.html

相关资源:Django之Form表单验证及Ajax验证方式汇总

最新回复(0)