相关疑难解决方法(0)

如何猴子补丁Django?

我发现这篇关于猴子修补Django的帖子:

from django.contrib.auth.models import User

User.add_to_class('openid', models.CharField(max_length=250,blank=True))

def get_user_name(self):
    if self.first_name or self.last_name:
        return self.first_name + " " + self.last_name
    return self.username

User.add_to_class("get_user_name",get_user_name)
Run Code Online (Sandbox Code Playgroud)

我知道这并不理想,最好User通过单独的模型添加字段和函数Profile.

话虽如此,我只是想了解这是如何工作的:

  1. 我会把猴子修补代码放在哪里?

  2. 代码何时运行 - 只需一次?每个Python解释器启动一次?每次请求一次?

  3. 据推测,我仍然需要更改数据库架构.所以,如果我放弃桌子User并跑了./manage.py syncdb,会syncdb"知道"已经添加了一个新字段User吗?如果不是,我如何更改架构?

python django monkeypatching django-models

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

django ×1

django-models ×1

monkeypatching ×1

python ×1