django form 验证

做一个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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值