python 通过特定ID渲染django模板

9rygscc1  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(121)

我试图创建一个模板来呈现id=pk的每个模型。但是我想知道我是否可以在我的HTML模板中链接到一个特定的模型。例如,而不是

<a href="{% url 'single-supplier' supplier.id %}"

我能写些类似于

<a href="{% url 'single-supplier' supplier.id=1 %}"

我问这个问题的原因是我想链接到我的导航栏中的一个特定ID。

{% load static %}
<header>
    <div class="container">
        <!-- Navbar -->
        <nav id="navbar" class="{% if request.resolver_match.url_name == 'home' %} main-page {% endif %}">
            <a href="{% url 'home' %}"><img src="{% static 'images/farmeclogo.png' %}" alt="Logo" id="logo"></a>
            <ul class="nav-list">
                <li class="nav-list-item"><a href="{% url 'home' %}"
                        class="{% if request.resolver_match.url_name == 'home' %} current {% endif %}">Home</a>
                </li>
                <li class="nav-list-item"><a href="{% url 'about' %}"
                        class="{% if request.resolver_match.url_name == 'about' %} current {% endif %}">About</a>
                    <ul class="nav-drop">
                        <li><a href="{% url 'about' %}">Our Team</a></li>
                        <li><a href="{% url 'about' %}">Our Story</a></li>
                    </ul>
                </li>
                <li class=" nav-list-item"><a href="{% url 'suppliers' %}"
                        class="{% if request.resolver_match.url_name == 'suppliers' %} current {% endif %}">Suppliers</a>
                    <ul class="nav-drop">
                        <li>
                            <a href="{% url 'single-supplier' supplier.id %}">SIP Grass
                                Machinery</a>
                        </li>
                        <li>
                            <a href="#">MX Loaders & Front-Linkage</a>
                        </li>
                        <li>
                            <a href="#">Sulky Fertilizer, Harrows & Drills</a>
                        </li>
                    </ul>
                </li>
                <li class="nav-list-item"><a href="amenity.html"
                        class="{% if request.resolver_match.url_name == 'amenity' %} current {% endif %}">Amenity</a>
                    <ul class="nav-drop">
                        <li><a href="#">Aerway</a></li>
                        <li><a href="#">Arag GPS & Sprayer Fittings</a></li>
                        <li><a href="#">Bargham Amenity Sprayers</a></li>
                        <li><a href="#">Twose Compact Hedge Cutters</a></li>
                    </ul>
                </li>
                <li class="nav-list-item"><a href="blog.html"
                        class="{% if request.resolver_match.url_name == 'blog' %} current {% endif %}">Blog</a>
                </li>
                <li class="nav-list-item"><a href="{% url 'contact' %}"
                        class="{% if request.resolver_match.url_name == 'contact' %} current {% endif %}">Contact
                        Us</a>
                </li>
            </ul>
        </nav>
    </div>
</header>

`
我试过渲染供应商的id = 1的地方,但不幸的是,这给了我一个错误。欢迎任何建议

i7uaboj4

i7uaboj41#

不知道为什么你会想硬编码这个数字到您的导航栏,但如果你想这样做,它将如下。
你不能做<a href="{% url 'single-supplier' supplier.id=1 %}",因为supplier.id是Django用来形成url并将其提供给视图的数字,它不是视图和url要寻找的关键字参数。
您需要执行的是<a href="{% url 'single-supplier' X=1 %}",其中X是在urls.py中定义的参数,例如:

path('supplier/<int:X>', views.supplier, name='single-supplier'),

当然,您不一定要使用名称X,我正在创建路径,但这应该会给予您一个概念。

相关问题