Python MySQL和Django外键到用户模型

Python MySQL和Django外键到用户模型,python,mysql,django,Python,Mysql,Django,我用django的用户模型的所有者外键创建了这个模型 from django.db import models from django.contrib.auth.models import User class Publicacion(models.Model): titulo = models.CharField(max_length=120) owner = models.ForeignKey(User) contenido = models.TextField(

我用django的用户模型的所有者外键创建了这个模型

from django.db import models
from django.contrib.auth.models import User


class Publicacion(models.Model):
    titulo = models.CharField(max_length=120)
    owner = models.ForeignKey(User)
    contenido = models.TextField()
    updated = models.DateTimeField(auto_now=True, auto_now_add=False)
    fechahora = models.DateTimeField(auto_now=False, auto_now_add=True)

    class Meta:
        ordering = ['fechahora']
        verbose_name_plural = 'Publicaciones'

    def __unicode__(self):
        return '%s %s' % (self.titulo, self.contenido)
但当我进行迁移时,我得到了这个错误:“django.db.utils.OperationalError:(1072,'键列'owner\u id'在表中不存在”)

我还应该做什么

已安装的应用程序

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'usuarios',
'publicaciones',
)

您必须有一个列来存储mysql数据库中的外键

模型中的字段必须类似于:

 owner = models.ForeignKey('auth.User')
数据库表中的列必须是:

owner_id      INT(11)
我不知道为什么,但是django将“\u id”添加到数据库列名中

此外,如果不希望数据库列名带有后缀“\u id”,可以在模型字段中添加以下内容:

db_column='owner'
因此,它必须是:

 owner = models.ForeignKey('auth.User',db_column='owner')

但是请记住在数据库中创建该列。

您必须有一个列来在mysql数据库中存储外键

模型中的字段必须类似于:

 owner = models.ForeignKey('auth.User')
数据库表中的列必须是:

owner_id      INT(11)
我不知道为什么,但是django将“\u id”添加到数据库列名中

此外,如果不希望数据库列名带有后缀“\u id”,可以在模型字段中添加以下内容:

db_column='owner'
因此,它必须是:

 owner = models.ForeignKey('auth.User',db_column='owner')

但请记住在数据库中创建该列。

我在外键和用户方面有问题。我使用了OneToOneField,它工作了。

我在外键和用户方面有问题。我使用OneToOneField,它工作了。

尝试刷新数据库,可能在这里发布“sqlmigrate”的内容。你是否先调用了
makemigrations
?是的,我没有收到任何错误。你安装的应用程序中的Is
django.contrib.auth
?是的,我用安装的应用程序更新了帖子。尝试刷新数据库,可能在这里发布'sqlmigrate'的内容。你是否先调用了
makemigrations
?是的,我没有收到任何错误。你安装的应用程序中的Is
django.contrib.auth
?是的,我用安装的应用程序更新了帖子。