Django模型故障

2024-04-29 07:42:59 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,可能有人遇到了这样的问题。 我正在尝试使用与来自django.contrib.auth.models的用户表的一对一关系创建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.5Postgre 13

提前谢谢你)


Tags: django用户nametrueautoverboseagemodels
1条回答
网友
1楼 · 发布于 2024-04-29 07:42:59

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

相关问题 更多 >