Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查看acc#u app.views.merchant#u消息没有';t返回HttpResponse对象。它没有返回任何结果_Python_Django_Django Rest Framework - Fatal编程技术网

Python 查看acc#u app.views.merchant#u消息没有';t返回HttpResponse对象。它没有返回任何结果

Python 查看acc#u app.views.merchant#u消息没有';t返回HttpResponse对象。它没有返回任何结果,python,django,django-rest-framework,Python,Django,Django Rest Framework,在这里,我在商家和管理员之间创建了一个聊天系统,但每次我通过表单发送消息时,它都会显示这个错误 Request Method: POST Request URL: http://127.0.0.1:8000/merchant-dashboard/messages/ Django Version: 3.1 Python Version: 3.8.2 Installed Applications: ['django.contrib.admin', 'django.contrib.auth',

在这里,我在商家和管理员之间创建了一个聊天系统,但每次我通过表单发送消息时,它都会显示这个错误

Request Method: POST
Request URL: http://127.0.0.1:8000/merchant-dashboard/messages/

Django Version: 3.1
Python Version: 3.8.2
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sites',
 'acc_app', # app
 'widget_tweaks',
 'rest_framework']

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/base.py", line 186, in _get_response
    self.check_response(response, callback)
  File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/base.py", line 307, in check_response
    raise ValueError(

Exception Type: ValueError at /merchant-dashboard/messages/
Exception Value: The view acc_app.views.merchant_messages didn't return an HttpResponse object. It returned None instead.

MyCode

views.py

@csrf_exempt
def message_list(request, receiver=None):

    ....
    elif request.method == 'POST':
        # message = request.POST['message']
        # admin = UserAccount.objects.get(is_superuser=True)
        # send_message = Message.objects.create(sender=request.user, receiver=admin, message=message)
        # send_message.save()
        serializer = MessageSerializer(data=request)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)


@login_required(login_url='login-user')
def merchant_messages(request):

    if request.method == "GET":
        message_list(request, receiver=request.user)
        admin = UserAccount.objects.get(is_superuser=True)
        all_messages = {
            'receiver': UserAccount.objects.get(email=admin),
            'messages': Message.objects.filter(sender=admin, receiver=request.user) |
            Message.objects.filter(sender=request.user, receiver=admin)
        }

        return render(request, 'dashboard/merchant/message-task.html', all_messages)
HTML文件

<form method="POST" id="chat-box">
    {% csrf_token %}
    <div class="input-group">
         <input name="message" typetype="text" class="form-control" placeholder="Enter Message"/>                       
         <span class="input-group-btn">
              <button class="btn btn-success" type="submit">SEND</button>
          </span>
     </div>
</form>

{%csrf_令牌%}
发送
它可以很好地显示收到的消息,但不能发送任何消息。
我还尝试使用Message.objects.create(),显示了相同的错误。

您正在向视图发出POST请求,而该请求根本不处理POST请求

@login_required(login_url='login-user')
def merchant_messages(request):

    // missing here
    // if request.method == "POST":


    if request.method == "GET":
        message_list(request, receiver=request.user)
        admin = UserAccount.objects.get(is_superuser=True)
        all_messages = {
            'receiver': UserAccount.objects.get(email=admin),
            'messages': Message.objects.filter(sender=admin, receiver=request.user) |
            Message.objects.filter(sender=request.user, receiver=admin)
        }

        return render(request, 'dashboard/merchant/message-task.html', all_messages)

您正在向视图发出POST请求,该请求根本不处理POST请求

@login_required(login_url='login-user')
def merchant_messages(request):

    // missing here
    // if request.method == "POST":


    if request.method == "GET":
        message_list(request, receiver=request.user)
        admin = UserAccount.objects.get(is_superuser=True)
        all_messages = {
            'receiver': UserAccount.objects.get(email=admin),
            'messages': Message.objects.filter(sender=admin, receiver=request.user) |
            Message.objects.filter(sender=request.user, receiver=admin)
        }

        return render(request, 'dashboard/merchant/message-task.html', all_messages)

问题是HTML表单对链接到
商户消息
视图的URL执行post请求,而不是
消息列表
视图

您接收到的错误表明未从
商户消息视图
接收到任何HttpResponse,这是正确的,因为只有当视图接收到GET请求时,您才返回正确的响应

您应该更改HTML表单,将帖子发送到绑定到
messages\u list
视图的url(并且可能更改视图的名称,因为它创建了一条消息,而不是列出它们)


提示:下次也发布你的URL.py,这样我们可以看看你是如何将你的URL链接到你的视图的。

问题是你的HTML表单向链接到
商户消息
视图的URL发出post请求,而不是
消息列表
视图

您接收到的错误表明未从
商户消息视图
接收到任何HttpResponse,这是正确的,因为只有当视图接收到GET请求时,您才返回正确的响应

您应该更改HTML表单,将帖子发送到绑定到
messages\u list
视图的url(并且可能更改视图的名称,因为它创建了一条消息,而不是列出它们)

提示:下次也发布你的URL.py,这样我们可以看看你是如何将URL链接到视图的