Django模型问题

Django model trouble

大家好,可能有人遇到过这样的问题。 我正在尝试使用与来自 django.contrib.auth.models.

的用户 table 的一对一关系创建一个 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 Postgre 13

提前谢谢你)

您还必须添加 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 documentation阅读