小编sun*_*hit的帖子

'WSGIRequest'对象没有属性'session'

我有时会在process_response方法中的自定义中间件中收到此错误.我有以下中间件列表:

MIDDLEWARE_CLASSES = [
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'application.middleware.LastCampaignSessionMiddleware'
Run Code Online (Sandbox Code Playgroud)

]

所以会话中间件放在我的中间件之前.我del request.session在源代码中没有任何表达式.这是process_response方法:

    def process_response(self, request, response):
        if 'last_campaign_id' in request.session and request.session['last_campaign_id']:
            if request.COOKIES['last_campaign_id'] != request.session['last_campaign_id']:
                response.set_cookie('last_campaign_id', request.session['last_campaign_id'])
        return response
Run Code Online (Sandbox Code Playgroud)

不知道为什么会发生这种情况.

编辑03-08-2012 12-30

它看起来像浏览器请求favicon:

[03/Aug/2012 10:26:42] "GET /favicon.ico/ HTTP/1.1" 404 6701
Run Code Online (Sandbox Code Playgroud)

django中没有默认行为来解析此URL吗?因为我没有明确指定应该处理此请求的视图.我不在页面源代码中使用favicon.所以我想这是浏览器请求/favicon.ico.我想如果404错误HttpRequest将无法正确构造,所以难怪我在请求对象中没有会话.但这只是我的假设.

此外,如果有必要我在使用django dev服务器时遇到此错误.

编辑13-00

我用favicon修复了这个问题,但仍然出错.为什么请求中可能不存在会话?

django django-middleware

14
推荐指数
2
解决办法
1万
查看次数

创建django会话时

我真的不明白什么时候创建会话以及创建它的实体(每个ip,每个浏览器,每个登录用户).我在文档中看到默认情况下会话是按访问者创建的 - 但访问者(浏览器或IP)是什么?

django django-sessions

13
推荐指数
2
解决办法
3162
查看次数

多对多以及如何从queryset获取查询集

我有以下型号:

class Product(models.Model):
    name = CharField(max_length=30)

class Store(models.Model):
    name = CharField(max_length=30)
    product = models.ManyToManyField(Product)
Run Code Online (Sandbox Code Playgroud)

如何获得Store带有名称的产品,product_name并获得所有产品(名称产品除外product_name)?是否可以在一个查询中进行?在原始SQL中,它很简单JOIN.不知道如何通过Django实现它.

django django-queryset

11
推荐指数
2
解决办法
2万
查看次数

用户管理器方法create()和create_user()

我遇到了一些对象管理器create()方法的可疑行为User.如果使用此方法,则看起来password不需要字段来创建User对象.结果你得到User空白password.如果您使用create_user方法并且未指定使用不可用的密码password创建User(通过set_unusable_password()).

我不确定为什么create()方法不会raise exception在您尝试创建用户时没有password- 在文档中指定此字段是必需的.有什么不对劲的create()方法/文档?

django django-managers django-users

8
推荐指数
1
解决办法
7059
查看次数

Python打印unicode不显示正确的符号

我使用的是Ubuntu 12.04 LTS.当我在终端尝试这样的事情时:

rfx@digest:/usr/share/fonts/truetype/ttf-dejavu$ echo ??????????
??????????
Run Code Online (Sandbox Code Playgroud)

符号显示正确.但是如果尝试使用python 2.7打印unicode符号,我会得到:

>>> print u'???'
??????
Run Code Online (Sandbox Code Playgroud)

正如python显示我默认为终端使用utf-8编码:

>>> sys.stdout.encoding
'UTF-8'
Run Code Online (Sandbox Code Playgroud)

python ubuntu python-unicode

8
推荐指数
1
解决办法
1201
查看次数

SQL.每月平均参赛作品

我在DB中有一些抽象的条目,它的创建日期.如何获得每月创建的平均条目?

编辑:

表具有Name字段和CreationDate字段.

sql

6
推荐指数
2
解决办法
2万
查看次数

Django的.管理站点中表单的取消按钮

管理站点中是否有任何功能允许为每个添加/更改表单取消按钮实现,该功能会将我重定向到该表单对象的列表.我的意思是任何形式的一般解决方案.

django django-forms django-admin

3
推荐指数
1
解决办法
2172
查看次数

姜戈。如何使用片段标识符重定向到 url

例如,在某些情况下,在 POST 或 GET 请求之后,我不仅想将用户重定向到特定页面,还想重定向到页面的特定部分。什么会更好:在 Django 中实现这个(重构重定向 url?)或在 javascript 中实现这个?

django django-urls

3
推荐指数
1
解决办法
1632
查看次数

鸡蛋和零件之间的扩建有什么区别?

使用buildout时有2个目录:egg和parts.还有buildout.cfg中的egg和parts声明.这些构建系统元素的目的是什么?

python egg buildout

3
推荐指数
1
解决办法
144
查看次数

计数组和子组

我使用SQL Server 2008.有包含项目的表,它们的状态和日期:

ID    Status      Date
1     Gone        21-10-2011
2     Cancelled   01-10-2011
3     Won         02-10-2011
4     Won         07-10-2011
5     Gone        02-01-2010
6     Won         24-01-2010
Run Code Online (Sandbox Code Playgroud)

出于统计目的,我需要一些T-SQL查询,结果将返回如下表:

Month    Year    Total    Lost   Won
10       2011    4        2      2
01       2010    2        1      1   
Run Code Online (Sandbox Code Playgroud)

哪里:

总数表示唯一月 - 月对的总条目金额.

丢失意味着唯一的月 - 年对的总条目金额,状态为"已过去"或"已取消"

赢取是指具有状态"赢"的唯一月 - 月对的总条目金额.

我理解如何获得唯一月份年份的总金额,但不知道如何在结果集中添加Lost和Won列并获得条目金额.当然,如果没有任何"赢"项目的月 - 月对和只有'迷失'它应该是赢得列的0值.

sql t-sql sql-server group-by count

2
推荐指数
1
解决办法
1858
查看次数