在 django 中设计 model 的时候,如果我想让 model 的两个变量有条件关系,比如 type 为 1 的时候有 image,type 为 0 的时候没有 image,并且能在后台编辑的时候反应出来,应该怎么做。
1
0asis 2017-05-26 23:25:10 +08:00 via iPhone
不确定不改 django 源码能不能实现,不过改代码肯定是可以实现的。
|
3
0asis 2017-05-26 23:36:22 +08:00 via iPhone
@bestkayle 应该可以,你看下 django-admin 的源码,在方法里做你需要的修改应该就可以,挺久改过 django 源码,记不清楚了。
|
5
laoyur 2017-05-27 08:09:10 +08:00
我不确定是否一定可行,但没准可以实现呢?
model 有个 post_init 信号,在一个实例产生时,你去判断是否 type 为 0,若 0 的时候就 delete(instance.image) ? https://docs.djangoproject.com/en/1.11/ref/signals/#post-init |
6
bestkayle OP @laoyur #5 谢谢你的建议,暂时还没实现,我现在写了几个继承自同一个 model 的 model,然后获取的时候用 select_related 提取出来可以实现功能。
|
7
fakepoet 2017-07-30 16:17:47 +08:00
建议看一下 proxy model https://docs.djangoproject.com/en/1.11/topics/db/models/#proxy-models
|