大家好,可能有人遇到了这样的问题。我正试图使用django.contrib.out.models.中的User表的一对一关系创建一个UserProfile模型
class Profile(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE),
age = models.IntegerField(null=True, blank=True)
status = models.TextField(null=True, blank=True)
avatar = models.ImageField(null=True, blank=True)
但是当我用manage.py makemigrations
创建迁移时,用户字段不存在
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Profile',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('age', models.IntegerField(blank=True, null=True)),
('status', models.TextField(blank=True, null=True)),
('avatar', models.ImageField(blank=True, null=True, upload_to='')),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
],
options={
'verbose_name': 'User Profile',
'verbose_name_plural': 'User Profile',
'ordering': ['-created_at'],
},
),
]
我做错了什么?(
django 3.2.5版本Postgre13
提前感谢(
您还必须添加User
模型。
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
class Profile(models.Model):
user = models.OnetoOneField(User, on_delete=models.CASCADE)
...
您还需要将settings.AUTH_USER_MODEL
指向此User
模型。
# settings.py
settings.AUTH_USER_MODEL = '<user_app_name>/models.py'
您可以查阅django文档来详细阅读。