小编Vad*_*nov的帖子

django syncdb传递后,Heroku上的"没有这样的表"错误

我正在尝试将我的Django应用程序部署到Heroku.迁移在我当地的Git中.当我尝试:

git push heroku master
heroku run python manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

它应用迁移并且还促使我创建超级用户,我成功地做了.现在应用程序已启动并运行,但是当我尝试登录Django管理员时它正在抛出:

OperationalError no such table: user_user
Run Code Online (Sandbox Code Playgroud)

当我尝试

heroku run python manage.py makemigrations    
heroku run python manage.py migrate
heroku run python manage.py createsuperuser
Run Code Online (Sandbox Code Playgroud)

它适用于所有迁移,但无法创建超级用户抛出:

django.db.utils.OperationalError: no such table: user_user
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,我都无法在Heroku上设置和迁移我的数据库.

我的数据库设置是:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
Run Code Online (Sandbox Code Playgroud)

我的用户模型是:

class User(AbstractUser):
    rating = models.PositiveIntegerField(default=settings.DEFAULT_USER_RATING)
Run Code Online (Sandbox Code Playgroud)

Django版本是1.7.1.

如何获取在Heroku上创建的数据库表?

python git django heroku

8
推荐指数
3
解决办法
3852
查看次数

Django模型查询最接近的整数匹配

我得到了一些具有不同评级字段值的Django模型对象:

puzzles_rating = [0, 123, 245, 398, 412, 445, 556, 654, 875, 1000]
    for rating in puzzles_rating:
        puzzle = Puzzle(rating=rating)
        puzzle.save()
Run Code Online (Sandbox Code Playgroud)

现在,对于a user_rating = 500,我想选择最接近评分的拼图.在上面的情况下,它应该是#6拼图,评级为445.

问题是我不能这样做:

puzzle = Puzzle.objects.filter(rating__lte=user_rating).order_by('-rating')[0]
Run Code Online (Sandbox Code Playgroud)

因为,一般来说,我最接近的匹配等级可能高于目标等级.

有没有方便的方法从两个方向查询最接近的匹配?

python django django-queryset

4
推荐指数
1
解决办法
1229
查看次数

Django EmailField接受任何值(包括空白)

拥有以下Django模型:

class Subscriber(models.Model):
    email = models.EmailField(unique=True, blank=False)
Run Code Online (Sandbox Code Playgroud)

使用空电子邮件创建订户时,我不会遇到任何例外:

>>> Subscriber.objects.create(email='')
<Subscriber: Subscriber object>
Run Code Online (Sandbox Code Playgroud)

有趣的是,这将第二次引发IntegrityError:

>>> Subscriber.objects.create(email='')
...
IntegrityError: column email is not unique
Run Code Online (Sandbox Code Playgroud)

因此,它似乎可以验证完整性,但不能验证电子邮件格式或空白条目。我如何验证电子邮件?

python django emailfield

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

标签 统计

django ×3

python ×3

django-queryset ×1

emailfield ×1

git ×1

heroku ×1