How do I change field or model attributes of a third-party Django app?
Let's say, I use django.contrib.flatpages, or any other third-party app in my project. I want to change som开发者_运维百科e of this app's model attributes - for example, verbose_name. How can I do that?
The simple answer is "don't"; use a proxy model instead.
It depends. If you want to add some new fields, you can create another model with OneToOneField
. If you want to add some methods, ordering etc., use proxy model. If you want to change some DB restrictions (e.g. max_length
) you can patch the source code of the app, but think twice before doing that, you should have a really good reason for that.
If you want to change verbose_name
, you can override label
in corresponding form field, no change in model needed.
精彩评论