模板中的Django foreignkey关系

时间:2014-02-06 15:22:12

标签: python django templates views relationships

我已经看到了一些如何在SO上做到这一点的例子,但没有一个能引导我走向我所希望的荣耀。

以下是我正在使用的字段:

models.py

class ServerFunctions(models.Model):
    server_function = models.CharField(max_length=12)

    class Meta:
        verbose_name_plural = "Server Function"

    def __unicode__(self):
        return self.server_function

class Inventory(models.Model):
    server_function = models.ForeignKey(ServerFunctions, null=False, blank=False)

views.py

def show_details(request, host_id=1):
    host_info = Inventory.objects.filter(id=host_id).values()
    return render_to_response('templates/details.html', {'host_info': host_info})

模板/ details.html

这为我提供了Inventory表(3)中的列值,就像它应该

一样
{{ info.server_function_id }}

这根本没有输出。

{% for func in info.serverfunctions_set.all %}
    {{ func.server_function }}
{% endfor %}

我被困住了,我尝试过的任何东西似乎都没有用。谢谢你的阅读。

1 个答案:

答案 0 :(得分:0)

您在模板中使用info.serverfunction_set.all,如果您正在遍历反向关系(即您有ServerFunction并且想要所有相关的Inventory项目),那么这将是正确的。但事实并非如此,InventoryServerFunction之间存在简单的前瞻性关系:

{% for info in host_info %}
    {{ func.server_function.server_function }}
{% endfor %}