Django填充用户模型扩展/配置文件模型

时间:2018-04-25 14:04:23

标签: django django-models

因此,我创建了一个应用程序,此应用程序需要将一些设置保存到用户模型hence I added a model with a OneToOne field / profile model

class Manager(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    play_onload = models.BooleanField(default=True)

在创建此模型之前,我已经注册了一些用户,这些用户也需要在新创建的模型中有条目,因为每个用户都必须在“Manager”应用程序中保存设置。

我现在的问题是,虽然我运行了迁移并为字段指定了默认值,但模型为空:

empty model

这似乎是合乎逻辑的,因为Django假定只在创建用户时填充模型。

但现在怎么会这样呢?只需修补数据库并填写所有已存在用户的条目,还改变用户创建过程?或者已经有一种更简单,更好的方法吗?

我的手动方法只是检索用户ID的完整列表并使用它们创建条目,如图所示

users = User.objects.all()
for user in users:
    Manager(user=user.id)

但问题在于它是手动的(很可能甚至不是100%正确)

1 个答案:

答案 0 :(得分:1)

创建管理>命令并使用manage.py

运行它
from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):

    def handle(self, *args, **options):
        users = User.objects.all()
        for user in users:
            m, c = Manager.objects.get_or_create(user=user.id)
            m.save()