首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >POST请求时“未返回HttpResponse对象。而是返回None”

POST请求时“未返回HttpResponse对象。而是返回None”
EN

Stack Overflow用户
提问于 2018-03-15 00:53:31
回答 1查看 414关注 0票数 0

我尝试将下拉表单中的选择作为POST请求传递到视图中,然后使用此选择从django查询一些数据。然后,我将使用这些查询来尝试并遵循this方法将django模型数据映射到highcharts。问题是当我提交表单时,我得到了一个"the view properties.views.property_list没有返回HttpResponse对象,而返回了None“的错误。我在SO上看过类似的问题,但似乎没有一个解决方案适用于我的情况。也许我的表单是无效的,尽管我不确定是什么导致了这种情况。下面是我写的代码:

views.py

代码语言:javascript
运行
复制
def property_list(request):

if request.user.is_authenticated():
    current_user_groups = Group.objects.filter(id__in=request.user.groups.all())
    current_user_properties = Property.objects.filter(groups__in=current_user_groups)
    current_user_meters = Meter.objects.filter(meter_id__in=current_user_properties)
    property_meter_data = MeterData.objects.filter(meter__in=current_user_meters)

    class AccountSelectForm(forms.Form):
        accounts = forms.ModelChoiceField(queryset=current_user_meters)
        accounts.widget.attrs.update({'class' : 'dropdown-content'})

    form = AccountSelectForm()

    if request.method == "POST":
        if form.is_valid():
            selection = form.cleaned_data['accounts']

            current_user_groups = Group.objects.filter(id__in=request.user.groups.all())
            current_user_properties = Property.objects.filter(groups__in=current_user_groups)
            current_user_meters = Meter.objects.filter(meter_id__in=current_user_properties)

            selected_meters = Meter.objects.filter(name=selection)
            selected_meter_data = MeterData.objects.filter(name=selection)

            usage_data = {'usage': [], 'dates': []}

            for meter in selected_meter_data:
                usage_data['usage'].append(meter.usage)
                usage_data['dates'].append(meter.usage)

            # data passing for usage chart

            usage_xAxis = {"title": {"text": 'Date'}, "categories": usage_data['dates']}
            usage_yAxis = {"title": {"text": 'Usage'}, "categories": usage_data['usage']}
            usage_series = [
                {"data": usage_data['usage']},
            ]

            return HttpResponseRedirect('properties/property-selected.html', {
                'form': form,
                'usage_xAxis': usage_xAxis, 
                'usage_yAxis': usage_yAxis, 
                'usage_series': usage_series,
                'current_user_meters': current_user_meters,
                'selection': selection,
                'selectected_meters': selected_meters,
                'selected_meter_data': selected_meter_data,
            })

    else:

        current_user_groups = Group.objects.filter(id__in=request.user.groups.all())
        current_user_properties = Property.objects.filter(groups__in=current_user_groups)
        current_user_meters = Meter.objects.filter(meter_id__in=current_user_properties)
        property_meter_data = MeterData.objects.filter(meter__in=current_user_meters)

        return render(request, 'Properties/properties.html',{
        'form': form,
        'current_user_groups': current_user_groups,
        'current_user_properties': current_user_properties,
        'current_user_meters': current_user_meters,
        'property_meter_data': property_meter_data
    })

else:

    # If the usre isn't authenticated, the user is redirected to the Sign-n Page

    return render(request, 'SignIn/SignInPage.html')

template.html

代码语言:javascript
运行
复制
<!-- Query based content for dropdown menu -->
<form method="POST" action="" id="property-select">
    {% csrf_token %}
    {{ form.accounts }}
    <input type="submit" value="Submit" class="submit-button" style="margin-top:30px;"/>
</form>
EN

Stack Overflow用户

发布于 2018-03-15 00:59:09

如果method=='POST‘并且您的表单无效,则不会返回任何内容。

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49283522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档