【问题标题】:Database backend error in django for foreign keydjango中外键的数据库后端错误
【发布时间】:2015-03-17 08:54:48
【问题描述】:

我无法在我的 django 应用程序中运行命令 runserver。 它总是显示: 您有未应用的迁移;在应用之前,您的应用程序可能无法正常运行。 运行“python manage.py migrate”以应用它们。

当我尝试迁移时,它会显示此错误: raise ValueError('数据库后端不接受 0 作为 'ValueError: 数据库后端不接受 0 作为 AutoField 的值。

这是我的models.py中的代码

class Category(models.Model):
    category_name = models.CharField(max_length=128, unique=True)
    category_alias = models.CharField(max_length=128, unique=True)
    category_desc = models.TextField()

    def __str__(self):
        return self.category_name

class Question(models.Model):
    #user = models.ForeignKey(User)
    category = models.ForeignKey(Category)
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __str__(self):
        return self.question_text

class Answer(models.Model):
    question = models.ForeignKey(Question)
    answer = models.TextField()

    def __str__(self):
        return self.answer

class UserProfile(models.Model):
    user = models.OneToOneField(User)

    state = models.CharField(max_length=200, blank=True)
    country = models.CharField(max_length=200, blank=True)
    zipcode = models.CharField(max_length=200, blank=True)

    def __str__(self):
        return self.user.username

谁能帮我摆脱困境。

文件0003_question_user.py中的代码:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations
from django.conf import settings


class Migration(migrations.Migration):

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('confession', '0002_userprofile'),
    ]

    operations = [
        migrations.AddField(
            model_name='question',
            name='user',
            field=models.ForeignKey(default=0,         to=settings.AUTH_USER_MODEL),
            preserve_default=False,
        ),
    ]

【问题讨论】:

  • 您似乎没有发布失败迁移的代码。
  • 您要询问的代码是什么?现在我也发布了错误消息。
  • 嗯,它在忏悔应用程序中迁移 0003_question_user 失败。这种迁移实际上是什么样的?
  • 当我试图运行这个命令“python manage.py sqlmigrate confession 0003”它抛出同样的错误。
  • 我没有问这个。我问过你迁移的代码是什么样子的。我们无法在没有看到的情况下帮助您。

标签: python django


【解决方案1】:
#user = models.ForeignKey(User)

现在被评论了。 您是否尝试在未注释的情况下执行迁移?

试试 python manage.py migrate --fake 然后

python manage.py 迁移

【讨论】:

  • 是的,当它被取消注释时我确实迁移了
  • 你能告诉我为什么会出现这个错误,我可以在这个类中添加用户字段吗?
猜你喜欢
  • 2014-10-22
  • 2014-08-26
  • 2021-07-03
  • 2012-07-24
  • 2014-06-09
  • 2015-12-26
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多