django oracle clob,如何覆盖django管理LogEntry mod

Django的模型字段提供了一个未记录的contribute_to_class方法。

我们可以使用的Django的另一个特性是class_prepared信号。在from django.db.models import CharField

from django.db.models.signals import class_prepared

def add_field(sender, **kwargs):

"""

class_prepared signal handler that checks for the model named

MyModel as the sender, and adds a CharField

to it.

"""

if sender.__name__ == "MyModel":

field = CharField("New field", max_length=100)

field.contribute_to_class(sender, "new_field")

class_prepared.connect(add_field)

要覆盖字段,只需从模型中删除原始字段:

^{pr2}$

我刚刚通过将这段代码放在我的应用程序的__init__.py中测试了这个解决方案。您还需要编写自定义迁移:from django.db import migrations, models

class Migration(migrations.Migration):

def __init__(self, name, app_label):

# overriding application operated upon

super(Migration, self).__init__(name, 'admin')

dependencies = [

('my_app', '0001_initial'),

]

operations = [

migrations.AlterField(

model_name='logentry',

name='object_id',

field=models.CharField('object id', max_length=1000, blank=True, null=True),

),

]

看起来很管用,但使用它要自担风险。

您可以阅读更多here。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值