Django,基于ID从模型中提取值

时间:2011-01-17 21:36:38

标签: django

我对Django比较陌生,作为我的知识测试,我正在尝试设置一个项目,在该项目中显示锚标签之间的游戏列表,当点击其中一个游戏标签时,它会提取信息关于使用相对于该名称的ID(主键)的模型中的游戏。例如,第一个游戏ID将是1,依此类推。

但是,我不确定如何为此构建视图。我之前能够从模板获取信息的唯一方法是从用户输入(输入标记),然后使用request.GET从输入中获取信息。

到目前为止,在这个项目中,锚标签链接到一个不同的URL,该URL具有基于id获取信息的视图,然后它应该刷新页面并显示信息。一切都应该很简单,但我很难想出一种根据点击链接获取游戏ID的方法。有没有办法我可以简单地在某处设置此ID的值并在视图中引用它,或者更确切地说是根据点击的链接拉出游戏的ID?

代码:

{% extends "base.html" %} <!-- Extends the base models html design-->

{% block title %}Arcade{%  endblock  %}

{% block content %}

{% if games %}
<p>Found {{ games|length }} game{{ games|pluralize }}</p>
    {% for game in games %}
        <li><a href="details.html">{{ game.game_name }}</a></li><!--Game Link->
    {% endfor %}
{% else %}
<p>There are currently no games in the database.</p>
{% endif %}

{% if results %}


{% endif %}


{% endblock %}

我希望我能够解释这个问题。

进一步简化:如何从模板中提取任何类型的值?

谢谢

基思

2 个答案:

答案 0 :(得分:1)

这很简单。在for循环的每次迭代中,都有一个名为game的对象,它可能是一个模型实例。所以你可以这样做:

<li><a href="/game/{{ game.id }}/">{{ game.game_name }}</a></li>

或者,更好的是,使用反向URL功能:

<li><a href="{% url game_details game.id %}">{{ game.game_name }}</a></li>

答案 1 :(得分:0)

你应该考虑使用AJAX。

当用户单击标记时,让页面异步GET或POST到您的django后端。如果你想获得,请写一个URL到

的效果
  

^ /数据/游戏/(\ d +)

然后获取id,获取模型实例,并返回一些json或xml。