【问题标题】:writing a django query and get reverse related objects in one hit of database!编写一个 django 查询并在一次数据库中获取反向相关对象!
【发布时间】:2011-03-21 21:12:52
【问题描述】:

我已经在 models.py 中编写了这些模型:

类用户(模型。模型): first_name = models.CharField(max_length=80) 类技能(模型。模型): 用户 = 模型。外键(用户) 标题 = models.CharField(max_length=80) level = models.IntegerField(default=3) 类工作(模型。模型): 用户 = 模型.Foriegnkey(用户) work_name = models.CharField(max_length=80) 工资 = 模型.IntegerField()

现在我想从他们的用户具有一定技能的数据库中获取那些作品,并与他们一起呈现一个 html。我在views.py中写了这段代码:

def show_works(请求,技能): 作品 = Work.objects.select_related().filter(user__skill__title=skill) return render_to_response("works.html", {'works':works})

但我想在该 html 中显示另一件事:我想显示该工作的用户的名字和他的技能。我使用了 select_related(),但我只能显示 first_name 但我无法达到用户的技能。

我想编写一个最佳查询来获取作品和其他额外信息,例如用户及其用户的技能!就像代码一样: (我不想为每项工作都打数据库来获得其用户的技能)

模板works.html:

{% for work in works %} {{work.work_name}} 用户是:{{work.user.first_name}} 它具有以下技能: {% for Skill in work.user.skill %} {{技能.title}} {% endfor %} {% endfor %}

【问题讨论】:

    标签: django-queryset


    【解决方案1】:

    您可能永远不会再看这个了,但无论如何我都会尝试回答。

    我认为这应该可行:

    {% for skill in work.user.skill_set.all %}
        {{skill.title}}
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2016-06-21
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 2019-06-15
      • 2013-10-05
      • 2015-12-08
      • 2022-06-10
      相关资源
      最近更新 更多