我正在研究我的第一个Django应用程序,我收到一个奇怪的错误。我看了looked it up并检查了我正在使用的版本1.5.1的Django文档,它没有说明这个错误。
pat.py:9: DeprecationWarning: django.utils.hashcompat is deprecated; use hashlib instead
DeprecationWarning)
TypeError: __init__() got an unexpected keyword argument 'verify_exists'
我正在使用虚拟环境,我安装了Django(pip冻结输出):
Django==1.5.1
argparse==1.2.1
django-db-log==2.2.1
psycopg2==2.4.6
wsgiref==0.1.2
yolk==0.4.3
另外,请务必注意,当我停用虚拟环境时,我尝试运行python manage.py syncdb
- 没有错误。只有在我使用虚拟环境时才会出现此错误。有任何想法吗?在此先感谢,如果这是一个不起眼的问题,我会道歉,我对Django来说很新!
EDIT2:我唯一的models.py:
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50, unique=True, help_text='Unique value for product page URL, created from name.')
description = models.TextField()
is_active = models.BooleanField(default=True)
meta_keywords = models.CharField("Meta Keywords", max_length=255, help_text='Comma-delimited set of SEO keywords for meta tag')
meta_description = models.CharField("Meta description", max_length=255, help_text='Content for description meta tag')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'categories'
ordering = ['-created_at']
verbose_name_plural = 'Categories'
def __unicode__(self):
return self.name
@models.permalink
def get_absolute_url(self):
return ('catalog_category', (), {'category_slug': self.slug})
class Product(models.Model):
name = models.CharField(max_length=255, unique=True)
slug = models.SlugField(max_length=255, unique=True, help_text= 'Unique value for product page URL, create from name.')
brand = models.CharField(max_length=50)
sku = models.CharField(max_length=50)
price = models.DecimalField(max_digits=9, decimal_places=2)
old_price = models.DecimalField(max_digits=9, decimal_places=2, blank=True, default=0.00)
image = models.CharField(max_length=50)
is_active = models.BooleanField(default=True)
is_bestseller = models.BooleanField(default=False)
is_featured = models.BooleanField(default=False)
quantity = models.IntegerField()
description = models.TextField()
meta_keywords = models.CharField(max_length=255, help_text='Comma-delimited set of SEO keywords for meta tag')
meta_description = models.CharField(max_length=255, help_text='Content for description meta tag')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
categories = models.ManyToManyField(Category)
class Meta:
db_table = 'products'
ordering = ['-created_at']
def __unicode__(self):
return self.name
@models.permalink
def get_absolute_url(self):
return('catalog_product', (), {'product_slug': self.slug})
def sale_price(self):
if (self.old_price > self.price):
return self.price
else:
return None
答案 0 :(得分:3)
我想我找到了原因,查看项目中安装的应用程序。我发现django-db-log
使用models.URLField(verify_exists=False, null=True, blank=True)
,在新版本中已弃用。
他们的项目尚未升级,所以也许您可以在他们的项目中提取请求或卸载该应用程序
更新:来自@NathanVillaescusa
from django.utils.hashcompat import md5_constructor //deprecated also
答案 1 :(得分:1)
我和logger有同样的问题,因为它不再被更新,我在这里分叉了回购并做了一些调整:
https://github.com/alvinkatojr/django-db-log
随着时间的推移,我将尽力使用最新的django版本更新回购。但是现在我希望这有助于未来的用户。