【问题标题】:Django model troubleDjango 模型问题
【发布时间】:2021-07-20 11:32:34
【问题描述】:

大家好,可能有人遇到过这样的问题。 我正在尝试使用与 django.contrib.auth.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 Postgre 13

提前谢谢你)

【问题讨论】:

    标签: python django django-models django-orm


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 2012-05-24
      • 2021-04-23
      • 2021-09-07
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多