首页 > 解决方案 > 不工作循环“为”

问题描述

我有一个models.py

class Part(models.Model):
    Party_number = models.CharField(max_length=10)
    Film = models.CharField(max_length=5)

视图.py

from django.shortcuts import render
from django.views.generic import ListView
from description.models import Part

class PartyNumView(ListView):
    template_name = 'part_list.html'
    model = Part

    def partList(self, request):
        my_var = Part.objects.all()
        return render(request, 'part_list.html', {"my_var": my_var})

和 HTML 模板part_list.html

{% extends 'base.html' %}
{% load staticfiles %}
{% load static %}

{% block activeButton %}
    <li class="active"><a href="/parties">Описание партий</a></li>
    <li><a href="/measures">Ic и QE</a></li>
{% endblock %}

{% block tableName %}
    Список партий
{% endblock %}

{% block content %}
    {% for object in my_var %}
        {{object.Party_number}}
    {% endfor %}
{% endblock content%}

我的问题是为什么包含循环“for”的部分代码不起作用?即 Party_number 的对象不显示在 html 页面上

更新 我将object.Party_number更改为{{object.Party_number}},但无论它不起作用

标签: pythondjango

解决方案


您已经定义了一个自定义方法,partList但它没有被从任何地方调用。该方法毫无意义,您应该将其删除。

如果要在基于类的视图中将数据添加到模板上下文,则需要定义get_context_data. 但是,这里没有理由这样做,因为无论如何它只会为您做 ListView 所做的事情。您应该使用视图自动填充的变量,即object_list.

{% for object in object_list %}
    {{ object.Party_number }}
{% endfor %}

推荐阅读