【问题标题】:My updateView creates a new post instead of updating the old post我的 updateView 创建一个新帖子而不是更新旧帖子
【发布时间】:2020-07-10 11:14:06
【问题描述】:

我的 updateView 创建一个新帖子而不是更新旧帖子。我想更新我的帖子,但是当我去更新表单时,它会创建一个全新的帖子

views.py

def edit_task(request, post_id):
    post = Post.objects.get(id=post_id)
    form = TaskForm(instance=post)
    if request.method == 'POST':
        print(request.POST)
        form = TaskForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('task')
    context = {'form': form}
    return render(request, 'List/add_task.html', context)

【问题讨论】:

    标签: python django django-views


    【解决方案1】:

    您需要为 GET 请求和 POST 请求传递实例:

    if request.method == 'POST':
        form = TaskForm(request.POST, instance=post)
    

    【讨论】:

    • 您需要更改的是if request.method == 'POST'中的代码。
    • 非常感谢它的工作,但是当我编辑帖子时它显示空表单为什么它不显示旧的帖子数据
    • 这是一个单独的问题,我已经在您的other question 上回答了这个问题。听起来你改错了行(当你说 I added request.POST 时),然后再也没有改回form = TaskForm(instance=post)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多