【问题标题】:Python / Django - Exception Value: 'WSGIRequest' object has no attribute 'Meta'Python / Django - 异常值:'WSGIRequest'对象没有属性'Meta'
【发布时间】:2015-11-12 07:45:04
【问题描述】:

我愿意将所有 http 请求保存到数据库(request_method 代表 db 字段)并将它们打印到页面(例如,最后 10 个请求),但遇到以下问题:异常值:'WSGIRequest'对象没有“元”属性。

models.py

from django.db import models

    class HttpRequest(models.Model):

        time = models.DateTimeField(auto_now=True, auto_now_add=False)
        request_method = models.CharField(max_length=20)

middleware.py

from .models import HttpRequest

class FirstMiddleware(object):

    def process_request(self, request):
        data = HttpRequest(request_method=request.Meta['REQUEST_METHOD'])
        data.save()

views.py

from django.shortcuts import render

def view_requests(request):
    request_list = HttpRequest.objects.all()[:10]
    return render(request, 'apps/hello/request_list', {'list': request_list})

这个问题是在处理 middleware.py 文件的过程中出现的(这就是为什么我不确定这里是否需要 view.py 但为什么不需要:))并且由于我是 django 的完全初学者,所以这是一个很大的挑战自己修复它,尽管任务似乎很容易。很高兴为您提供见解。

【问题讨论】:

  • HttpRequest 是 django.http 中的内置类。您可能想要重命名您的自定义类。

标签: python django httprequest middleware


【解决方案1】:

不是Meta。这是@987654321@。希望这会对你有所帮助。

【讨论】:

  • 哦。谢谢..)粗心大意的一个很好的例子)