【发布时间】:2020-10-10 11:35:12
【问题描述】:
提前致谢,这是我的 users/models.py 文件:
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
def __str__(self):
return "{} profile".format(self.user.username)
然后我运行 python manage.py makemigrations + python manage.py migrate,一切似乎都正常,但它没有创建表 users_profile :
1146, "表 'polls_db.users_profile' 不存在") 在管理部分 + 相同时,我尝试操作配置文件扔了外壳。
我检查了我的 mariadb 数据库,确实没有 users_profile 表。
我还在学习 django,它在之前使用 sqlite 数据库的项目中运行良好,有解决方案吗?
编辑:当切换到默认 sqlite3 数据库时,会自动创建 users_profile,尽管这次我遇到了 sqlite3 数据库的另一个问题,它不想创建一个名为流行度的列:
Class Question(models.Model):
id = models.AutoField(
primary_key=True)
question_text = models.CharField("Question", max_length=200)
pub_date = models.DateTimeField(
"date de publication", default=timezone.now )
popularity = models.IntegerField("popularité", default=0)
django.db.utils.OperationalError: 表 polls_question 没有列 命名人气
编辑 2:安装了 PostgreSQL,一切正常,users_profile 自动创建,与我使用 sqlite3 时遇到的其他模型没有问题,这不是解决方案,只是想让你知道
【问题讨论】:
-
您是否在 INSTALLED_APPS 的设置中添加了用户应用?
-
是的,先生,这是 mysite/mysite/settings.py 的 INSTALLED_APPS 部分 INSTALLED_APPS = [ 'polls.apps.PollsConfig', 'users.apps.UsersConfig', 'django.contrib. admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',]
-
执行 python
manage.py makemigrations后,迁移文件是否会在应用程序的迁移文件夹中自行创建? -
我已经删除了所有内容并从头开始重新启动,但仍然相同,是的,它创建了一个迁移文件夹 + 文件,makemigrations 之后的 shell 输出:“用户”的迁移:users/migrations/0001_initial.py -创建模型配置文件,mysql数据库中还是什么都没有
-
如果我在没有 django 的情况下直接在 mariadb 中创建表,它会起作用吗?