首页 > 解决方案 > Django,使用 ModelForm 将数据添加到外键字段的最佳方法

问题描述

我正在玩 django、ModelForms,并使用外键创建了 PostModel 和 CommentModel。那就是所有帖子都有一个评论框,允许用户发表评论,这是我的观点,效果很好我只是想知道我可以将数据添加到评论字段的最佳方式

def comment(request, id):
try:
    post = PostModel.objects.get(pk=id)
    if request.method == 'POST':
         form = CommentForm(request.POST)
         if form.is_valid():
            comment = form['comment'].value()
            post.postcomment_set.create(comment=comment)
            return redirect('all_post')

    else:
        form = CommentForm()
        context['form2'] = form
    return render(request, 'prac/comment.html', context)
except Exception as e:
    return HttpResponse(f'Error {e}')

模板中的表格

<form action="{% url 'comment' post.id %}" method="post">
            {% csrf_token %}
            <p>{{form2.comment.label}}<br>{{form2.comment}} <input type="submit" value="Comment"></p>
 </form>

一切正常我只想知道在我看来处理数据处理的最佳方式

标签: pythondjangomodelform

解决方案


尝试使用form.instance它,它包含新的注释实例,因此您可以在保存之前对其进行修改:

 if form.is_valid():
        form.instance.post = post
        form.save()
        return redirect('all_post')

推荐阅读