在生产环境下,只有在展示“内部错误500”时的两种Django视图

2024-09-27 21:27:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网站,在我的开发环境中运行得非常好,但是在debian9、Nginx和Gunicorn设置的生产中抛出了一个内部错误(500)。 下面是一些麻烦的观点:

@login_required
def post(request):
    if request.method == "POST":
        form = ListingForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.lat, post.lng = get_lat_lng(google_api_key,
                                             post.street_address + ", " + post.city + ", " + post.state)
            post.save()
            return redirect('post_view', pk=post.pk)
    else:
        form = ListingForm()
    return render(request, 'post.html', {'form': form})


@login_required
def post_edit(request, pk):
    post = get_object_or_404(Listing, pk=pk)
    if request.method == "POST":
        form = ListingForm(request.POST, request.FILES, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.lat, post.lng = get_lat_lng(google_api_key,
                                             post.street_address + ", " + post.city + ", " + post.state)
            post.save()
            return redirect('post_view', pk=post.pk)
    else:
        form = ListingForm(instance=post)
    return render(request, 'post_edit.html', {'form': form, 'post': post})

下面是一个视图示例,该视图在具有类似功能的生产环境中完全正常工作:

@login_required
def new_attorney(request):
    if request.method == "POST":
        form = AttorneyForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.save()
            return redirect('attorney_edit', pk=post.pk)
    else:
        form = AttorneyForm()
    return render(request, 'new_attorney.html', {'form': form})

我有点吓坏了,因为这是一个时间敏感的项目,我们需要很快上线,我不知道是什么导致了这个错误。如果您需要其他代码来诊断问题,请告诉我

我的Nginx错误和访问日志为空。我不知道如何检查gunicorn日志,但我将日志设置为“gunicorn--error logfile/opt/gunicorn-error.log”_platform:wsgi“它只是给我不相关的连接错误。我想指出的是,除了这两个视图之外,我的网站上的所有其他功能都能正常工作


Tags: formreturnifrequestsavedef错误required

热门问题