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

Django 访问 relation 时,如何得知是谁访问的?

  •  
  •   coolair · 2022-10-26 09:59:43 +08:00 · 1646 次点击
    这是一个创建于 759 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如有 User 和 Department
    d1 = user.department
    d2 = Department.objects.first()

    如何知道 d1 是通过 user 访问的呢?
    我想如果是通过 user.department 访问的,就给这个 department 加上一个属性 department.from=user ,怎么操作好?
    5 条回复    2022-12-01 11:13:44 +08:00
    ray5173
        1
    ray5173  
       2022-10-26 10:28:39 +08:00
    框架不能帮你做这件事吧,只能自己的代码里写逻辑。
    Vegetable
        2
    Vegetable  
       2022-10-26 10:50:59 +08:00
    设计的不太对劲的样子

    https://imgur.com/a/NNn5FjH

    为了实现这个东西你需要改变框架层面的逻辑,容易改不干净,如果有人合作还增加理解成本
    wingor2015
        3
    wingor2015  
       2022-10-26 16:29:40 +08:00
    不太明白楼主为什么需要这样做
    954
        4
    954  
       2022-11-01 01:28:11 +08:00
    重写 User 的 Manager
    HashV2
        5
    HashV2  
       2022-12-01 11:13:44 +08:00
    给 Department 写 @property form 和 @form.setter ,给 User 写一个 get_department 方法,然后在方法里面把 form set 上去

    从用户获取部门统一用 user.get_department()
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   941 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:16 · PVG 05:16 · LAX 13:16 · JFK 16:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.