Django查找模板的URL

2024-09-29 21:44:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在想办法在我的django应用程序中为我的内容建立一个url列表。我已经正确地设置了模型和视图,并且已经知道如何在模板中访问这些数据,但是我不太确定如何开始为它们创建url。你知道吗

我掌握的数据是大陆和这些大陆的国家。模板应该呈现一个大陆列表,但是作为链接。你知道吗

下面是一个关于一个大陆的例子:

<ul id="continentMenu">
  <li><a href="insert-path-to-continent-using-the-template">Scandinavia</a></li>
</ul>

我的网址.py看起来像

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/', include('countrydata.urls')),
    url(r'^', include('selectui.urls')),
]

还有我的索引.html看起来像

{% extends 'base.html' %}

{% block title %}Home{% endblock %}

{% block content %}
{% if user.is_authenticated %}
  Hi {{ user.username }}!
     <p><a href="{% url 'logout' %}">logout</a></p>
{% else %}
  <p>You are not logged in</p>
  <a href="{% url 'login' %}">login</a>
{% endif %}
{% endblock %}

我的菜单.html,我想把大陆的联系放进去,看起来像

{% extends "base.html" %}
{% load staticfiles %}


{% block content %}


    <div class="container-fluid">


            <div class="l">
                {% for continent in all_continents %}

                    <h1> {{ continent.name }}</h1>
                    <p> {{ continent.code }}</p>
                    {% for country in continent.countries.all %}
                        <p> {{country.name}}</p>
                    {% endfor %}

                {% endfor %}
            </div>

    </div>
{% endblock %}

目前,我只是让它将所有大陆和国家打印成纯文本,以确保我成功地解析了对象(我就是这样)。我很难弄清楚我需要在{%url%}中输入什么样的指令,因为我的第一次尝试只会导致错误。你知道吗

那个阿贾克斯.js我被派去和看起来像

/* Run once document ready. */
$(function() {
    "use strict";
#continentMenu.
    $("#continentMenu a").on("click", function(event) {

        event.preventDefault();
        var url = $(this).attr("href");

        $("#continentName").text($(this).text());

        $("#tableContainer").load(url);
    });
});

以及视图.py看起来像

from django.shortcuts import render, get_object_or_404

from countrydata.models import Continent


def show_continent(request, continent_code=None):
    context = {
        "all_continents": Continent.objects.all()
    }
    if continent_code:
        continent = get_object_or_404(Continent, code=continent_code)
        context["continent"] = continent

    return render(request, "selectui/index.html", context)

Tags: djangofromimportdivurlincludeadminhtml

热门问题