I was getting this error when testing out a project I just set up
在测试我刚刚设置的项目时,我遇到了这个错误
Exception Type: ImproperlyConfigured
Exception Value:
This query requires pytz, but it isn't installed.
After a little googling I found that I was getting this because in my settings I specified
经过一番谷歌搜索后,我发现我得到了这个,因为在我指定的设置中
USE_TZ = True
which I believe is supposed to make my project timezone aware.
我相信它应该让我的项目时区意识到。
So I ran a sudo pip install pytz
to install pytz so I wouldn't get this error. The problem is that now , with pytz installed my models won't validate when I try to do ./manage.py runserver
and I get this error
所以我运行了一个sudo pip install pytz来安装pytz所以我不会得到这个错误。问题是,现在,安装了pytz后,当我尝试执行./manage.py runserver时,我的模型将无法验证,我收到此错误
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/core/management/__init__.py", line 354, in execute
django.setup()
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
from django.utils.log import configure_logging
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/utils/log.py", line 10, in <module>
from django.views.debug import ExceptionReporter, get_exception_reporter_filter
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/views/debug.py", line 10, in <module>
from django.http import (HttpResponse, HttpResponseServerError,
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/http/__init__.py", line 4, in <module>
from django.http.response import (HttpResponse, StreamingHttpResponse,
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/http/response.py", line 13, in <module>
from django.core.serializers.json import DjangoJSONEncoder
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/core/serializers/__init__.py", line 23, in <module>
from django.core.serializers.base import SerializerDoesNotExist
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/core/serializers/base.py", line 6, in <module>
from django.db import models
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/db/models/__init__.py", line 6, in <module>
from django.db.models.query import Q, QuerySet, Prefetch # NOQA
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/db/models/query.py", line 13, in <module>
from django.db.models.fields import AutoField, Empty
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 15, in <module>
from django.db.models.lookups import default_lookups, RegisterLookupMixin
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/db/models/lookups.py", line 6, in <module>
from django.utils import timezone
File "/Users/user/.virtualenvs/app/lib/python3.4/site-packages/django/utils/timezone.py", line 149, in <module>
utc = pytz.utc if pytz else UTC()
AttributeError: 'module' object has no attribute 'utc'
What is happening here? Why did I get this error? To me this looks like the problem is coming from pytz but I am not sure. Any help would be greatly appreciated.
这里发生了什么?为什么我会收到此错误?对我来说这看起来问题来自pytz,但我不确定。任何帮助将不胜感激。
Here is my model, which worked fine before installing pytz
这是我的模型,在安装pytz之前工作正常
from django.db import models
from django.conf import settings
# Create your models here.
class Item(models.Model):
title = models.CharField(max_length=100, )
description = models.TextField()
seller = models.ForeignKey(settings.AUTH_USER_MODEL)
price = models.DecimalField(max_digits=11, decimal_places=2)
timestamp = models.DateTimeField(auto_now_add=True)
last_updated = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
Edit: I added my views.py file
编辑:我添加了我的views.py文件
from .models import Item
from django.views.generic import ListView, DetailView
class ItemListView(ListView):
model = Item
class ItemDetailView(DetailView):
model = Item
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
#This is getting a dictionary of the objects being displayed to
#the template
context = super(ItemDetailView, self).get_context_data(**kwargs)
# Add in a QuerySet of all items up for trade by the user
context['other_things_for_trade_by_user'] = Item.objects.filter(seller=context['seller'])
return context
1 个解决方案
#1
2
As suggested this issue was caused by mismatching versions of pytz and django. This was fixed by uninstalling pytz and django and reinstalling them both with pip.
正如所建议的那样,这个问题是由pytz和django的不匹配版本引起的。这是通过卸载pytz和django并使用pip重新安装它们来解决的。
#1
2
As suggested this issue was caused by mismatching versions of pytz and django. This was fixed by uninstalling pytz and django and reinstalling them both with pip.
正如所建议的那样,这个问题是由pytz和django的不匹配版本引起的。这是通过卸载pytz和django并使用pip重新安装它们来解决的。