Джанго, извлечение значения из модели на основе идентификатора - PullRequest
0 голосов
/ 18 января 2011

Я относительно новичок в Django и в качестве проверки своих знаний я пытаюсь создать проект, в котором он отображает список игр между тегами привязки, когда при нажатии на один из тегов игры он извлекает информациюоб этой игре из модели, использующей идентификатор (первичный ключ) относительно этого имени.Например, первый идентификатор игры будет 1 и так далее.

Однако я не уверен, как подойти к построению представления для этого.Единственный способ получить информацию из шаблона раньше - это пользовательский ввод (тег ввода), а затем использование request.GET для получения информации из ввода.

До сих пор в этом проекте якорные теги ссылались на другой URL, который имеет представление, которое получает информацию на основе идентификатора, затем он должен обновить страницу и информация должна отображаться.Все должно быть легко, но у меня просто возникают проблемы с поиском идентификатора игры, по которой нажимают на ссылку.Есть ли способ, которым я могу просто установить значение этого идентификатора где-нибудь и ссылаться на него в представлении, или, скорее, вытащить идентификатор игры в зависимости от того, какая ссылка нажата?

Код:

{% 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 ]

1 голос
/ 18 января 2011

Это просто.На каждой итерации цикла 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>
0 голосов
/ 18 января 2011

Вы должны посмотреть на использование AJAX для этого.

Когда пользователь щелкает тег, асинхронно получайте страницу GET или POST к вашему бэкэнду django Если вы хотите получить, напишите URL с эффектом

^ / данных / игра / (\ d +)

затем захватите id, получите экземпляр вашей модели и верните json или xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...