当用户尝试共享 post 时,函数视图在 /group/share/42/ 处抛出异常 UnboundLocalError

Function view throws an exception of UnboundLocalError at /group/share/42/ when a user tries share a post

当我尝试在 group.The 异常跟踪中共享另一个用户的 post 时,/group/share/42/ 的异常 UnboundLocalError 可能是什么过程似乎在第一个forloop ( new = new_post.video.add(img) ) 这行是我的观点,供网友分享 post


def share_post(request, pk):
    original_post = Post.objects.get(pk=pk)
    form = ShareForm(request.POST)
    if form.is_valid():
        new_post = Post(
            shared_body = request.POST.get('description'),
            description = original_post.description,
            username = original_post.username,
            date_posted = original_post.date_posted,
            shared_on = timezone.now(),
            shared_user = request.user)
        new_post.save()
    for img in original_post.video:
        shared  = new_post.video.add(img)
        shared.save()
    return redirect('group:main',original_post.group.pk)

这是我的模型Post。

new_post 只有在表单有效时才会被赋值,所以你应该缩进 for 循环:

def share_post(request, pk):
    original_post = Post.objects.get(pk=pk)
    form = ShareForm(request.POST)
    if form.is_valid():
        <strong>new_post</strong> = Post(
            shared_body = request.POST.get('description'),
            description = original_post.description,
            username = original_post.username,
            date_posted = original_post.date_posted,
            shared_on = timezone.now(),
            shared_user = request.user
        )
        new_post.save()
        for img in original_post.video:
            new_post<strong>.video.add(img)</strong>
    return redirect('group:main',original_post.group.pk)