V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bestkayle
V2EX  ›  Django

一个 django model 设计的问题

  •  
  •   bestkayle · 2017-05-26 22:02:34 +08:00 · 2849 次点击
    这是一个创建于 2517 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 django 中设计 model 的时候,如果我想让 model 的两个变量有条件关系,比如 type 为 1 的时候有 image,type 为 0 的时候没有 image,并且能在后台编辑的时候反应出来,应该怎么做。

    第 1 条附言  ·  2017-05-26 23:13:55 +08:00
    或者在一个页面的 list 里面按时间展示不同类型的 model object
    8 条回复    2017-07-31 09:47:19 +08:00
    0asis
        1
    0asis  
       2017-05-26 23:25:10 +08:00 via iPhone
    不确定不改 django 源码能不能实现,不过改代码肯定是可以实现的。
    bestkayle
        2
    bestkayle  
    OP
       2017-05-26 23:29:56 +08:00
    @0asis #1 在同一个页面里面按时间顺序展示几个不同的 model 的 object 呢=-=
    0asis
        3
    0asis  
       2017-05-26 23:36:22 +08:00 via iPhone
    @bestkayle 应该可以,你看下 django-admin 的源码,在方法里做你需要的修改应该就可以,挺久改过 django 源码,记不清楚了。
    bestkayle
        4
    bestkayle  
    OP
       2017-05-26 23:55:41 +08:00 via Android
    @0asis 好的我试试,感谢
    laoyur
        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
    bestkayle
        6
    bestkayle  
    OP
       2017-05-28 10:45:00 +08:00
    @laoyur #5 谢谢你的建议,暂时还没实现,我现在写了几个继承自同一个 model 的 model,然后获取的时候用 select_related 提取出来可以实现功能。
    fakepoet
        7
    fakepoet  
       2017-07-30 16:17:47 +08:00
    bestkayle
        8
    bestkayle  
    OP
       2017-07-31 09:47:19 +08:00
    @fakepoet #7 学习了,多谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2604 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:04 · PVG 00:04 · LAX 09:04 · JFK 12:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.