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

小白问一个 Models 关联查询的问题

  •  
  •   zjgsamuel ·
    zjgsamuel · 2014-06-25 11:06:52 +08:00 · 3190 次点击
    这是一个创建于 3786 天前的主题,其中的信息可能已经有所发展或是发生改变。
    class porduct_class(models.Model):
    pclass = models.CharField(max_length=255,verbose_name=u'产品分类')
    Pclassdesc = models.CharField(max_length=255,verbose_name=u'产品分类描述',null=True)

    class porduct_info(models.Model):
    pclass = models.ForeignKey(porduct_class,verbose_name=u'产品分类',default=1)
    pname = models.CharField(max_length=255,verbose_name=u'产品名称')
    最简单不过的2个数据表 porduct_info 通过 ForeignKey 关联 porduct_class

    我有个场景需要在模板里头要显示 porduct_info 中关联的产品分类的描述内容 Pclassdesc

    最笨办法是 在View 里头分别查找赋值 然后传到模板里头去

    productdetail = porduct_info.objects.get(id=int(id))
    porductdesc = productdetail.pclass.Pclassdesc
    我想有没有一些优雅的办法来实现呢, 比如说

    在不改变数据表结构的条件下 通过扩展 porduct_info Models 的属性 来实现呢?

    可能我看文档不仔细,现在还没有找到好的办法,球大神们指点一二那~ 多谢了!
    4 条回复    2014-06-25 16:02:30 +08:00
    wangyongbo
        1
    wangyongbo  
       2014-06-25 11:11:48 +08:00   ❤️ 1
    我记得 模板里面可以直接使用 {{ productdetail.pclass.Pclassdesc }}
    zjgsamuel
        2
    zjgsamuel  
    OP
       2014-06-25 11:19:11 +08:00
    @wangyongbo
    额 模板里头我试过 productdetail.pclass_id.Pclassdesc 直接拿数据库的字段来了 当时试不行,我以为这条路走不通了....

    学习了~ 多谢哈~
    guoqiao
        3
    guoqiao  
       2014-06-25 15:58:02 +08:00
    在任何Django代码里,包括模板参数里,都可以直接productdetail.pclass.Pclassdesc来获取.
    BTW: 你的命名风格简直无法直视...
    zjgsamuel
        4
    zjgsamuel  
    OP
       2014-06-25 16:02:30 +08:00
    @guoqiao 嘿 我也发现了 这个是新手在学习那 有大一半的代码都是直接copy人家滴 So 你懂得...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1319 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:34 · PVG 07:34 · LAX 15:34 · JFK 18:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.