在django上向模型添加字段的正确方法

时间:2017-03-30 13:58:39

标签: python django model migration

我有一个User模型,我想在用户,数据库和用户表单中添加一个新字段。我已经在线查看了许多不同的方法,但我想知道"正确" 的方法是什么。特别是创建迁移的正确方法。

Django版本:(1,10,0,你' final',1)

1 个答案:

答案 0 :(得分:1)

不确定我是否得到了您正在寻找的内容但是假设您要在“用户”模型中添加“状态”字段,然后将其放在“管理”面板中以便与其进行交互(更新,更改,等等...)。

models.py中的

- 我们正在创建一个Profile类,它将链接到User,然后是一个要添加到用户的状态:

class Profile(models.Model):
    " A profile added User """
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    # so to link the profile to a user
    status = models.CharField(max_length=100, blank=True)
    # a field status

    def __str__(self):
        return self.status
admin.py中的

- 我们正在将新创建的配置文件集成到用户

class ProfileInline(admin.StackedInline):
    model = Profile
    can_delete = False
    verbose_name_plural = 'Profile'
    fk_name = 'user'

class CustomUserAdmin(UserAdmin):
    inlines = (ProfileInline, )
    def get_inline_instances(self, request, obj=None):
        if not obj:
            return list()
        return super(CustomUserAdmin, self).get_inline_instances(request, obj)

# And then we unregister the User class and register the two updated ones
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)

不要忘记运行/manage.py makemigrations然后/manage.py migrate来更新数据库。

如果能回答您的问题,请告诉我。