我对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 %}
我希望我能够解释这个问题。
进一步简化:如何从模板中提取任何类型的值?
谢谢
基思
答案 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。