谢谢,这是我的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'不存在”)+当我试图操作profile时抛出shell。
我检查了我的mariadb数据库,确实没有users_profile表。
我还在学习django,它在以前的sqlite数据库项目中运行良好,有解决方案吗?
编辑:当切换到默认的sqlite3数据库时,会自动创建users_profile,尽管我在sqlite3数据库中遇到另一个问题,这次它不想创建一个名为Population的列:
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没有名为population的列
编辑2:安装了PostgreSQL并且一切正常,users_profile被自动创建并且没有其他模型的问题,就像我在sqlite3中经历的一样,这不是一个解决方案,只是想让你知道
我在这段代码中没有看到任何错误。 尝试将数据库更改为SQLite,看看是否仍然发生错误,可能是数据库设置的问题
我用defaut sqlite3替换了mariadb数据库,是的,它创建了users_profile,这是mysql的一个已知错误吗? 我想继续用它
my Settings.py数据库(如果可能的话):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'polls_db',
'USER': os.environ.get("MYSQL_U"),
'PASSWORD': os.environ.get("MYSQL_P"),
'HOST': '',
'PORT': "",
}
}