我想重写类方法,而不是从类创建子类/扩展。在
例如:
from django.contrib import admin
class NewModelAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
# some custom stuff
现在我不想更改从admin.ModelAdmin
扩展到NewModelAdmin
的所有类(aka模型)。但我也不想修改原始的django代码。在
有什么方法可以做到这一点吗?在
Tags:
为了保持代码的可维护性,最好让您的各个ModelAdmin类从NewModelAdmin继承。这样,其他查看您的代码的开发人员(以及您,可能一到两年后)可以清楚地看到自定义formfield_for_dbfield行为的来源,以便在需要时对其进行更新。如果你是猴子补丁管理模型管理员,这将使跟踪问题或在以后需要时更改行为变得更加困难。在
我不是百分之百的清楚你想做什么,为什么你不想创建一个新的子类或有一个不同名称的方法。在
但在python中,通常可以执行以下操作:
你想做“猴子修补”吗?在
http://mail.python.org/pipermail/python-dev/2008-January/076194.html
相关问题 更多 >
编程相关推荐