wsgi + django将导入作为NoneType返回

时间:2011-03-19 18:50:47

标签: django apache2 mod-wsgi wsgi

我有一个应用程序在运行./manage.py runserver(甚至runserver_plus)时工作得非常好,但是当我将它部署到apache2 + wsgi实例时,它会中断。它尝试导入的第一个模型(UserProfile)似乎已将所请求的模块导入为NoneType。

所以,这样的模型(这不是确切的代码,我现在不能粘贴到公共网站上):

from django.db import models
from django.contrib.auth.models import User
from BlogEngine.categorisation.models import Category

from django.db.models.signals import post_save
from django.conf import settings

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.utils.translation import ugettext as _

import logging

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)

    category    = models.ManyToManyField(Category, blank=True, related_name="category")

    def __unicode__(self):
        return "Profile for %s" % user.username

    def update_categories(self):
        """Updates the categories list"""

        pull_more = self.category_selection_max - self.category.count()

        if pull_more == 0:
            return self.category_selection

        logging.debug("Drawing %s categories" % draw)

        categories = Category.objects.filter(
            is_live=True
        ).order_by("?")[:pull_more]

        ## More code under here ##

返回:

'NoneType'对象没有属性'debug'

在行logging.debug(“绘制%s类别”%绘图)

评论结果导致获得

'NoneType'对象没有属性'objects'

在它下面的线上,依此类推。一切都肯定是导入的,它在开发服务器下工作正常。

我的WSGI文件是:

import sys
import site
import os

vepath = '/home/aquarion/newsite/django/virtualenv/lib/python2.6/site-packages'

#prev_sys_path = list(sys.path)
## add the site-packages of our virtualenv as a site dir
site.addsitedir(vepath)
## add the app's directory to the PYTHONPATH
sys.path.append('/home/aquarion/newsite/django/')

# import from down here to pull in possible virtualenv django install
from django.core.handlers.wsgi import WSGIHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'BlogEngine.settings'
application = WSGIHandler()

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

解决了它。

不确定这是否是某些内容中的错误,但最终导致使用django的用户个人资料以及models.py文件中的管理员模型信息。一旦我将所有内容都移到了自己的admin.py文件中,一切正常。

仍然不确定究竟是什么原因引起的,但这就是解决方案。

(通过http://osdir.com/ml/DjangoUsers/2009-07/msg00090.html及其回复达成的解决方案)