【发布时间】: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