多对多关系save_m2m()方法存储

save_m2m方法只用来存储多对多的关系:

当你同时满足下面两个条件时,你必须要使用此方法——
1、使用了save(commit=False)方法,添加了额外的字段
2、model里有多对多的关系(比如tags)

假设我们文章模型里有tags这个多对多的字段,我们还需要在视图里增加一行save_m2m, 否则多对多关系不会被存储。

def article_create(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            article = form.save(commit=False)
            # commit=False tells Django that "Don't send this to database yet.

            article.author = request.user  # Set the user object here
            article.save()  # Now you can send it to DB
            form.save_m2m()

            return HttpResponseRedirect("/blog/")
    else:
        form = ArticleForm()
    return render(request, 'blog/article_create_form.html', {'form': form})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容