未设置Django模板变量

未设置Django模板变量,django,django-templates,Django,Django Templates,标题说明了一切。两天前,以下代码工作正常,但现在旅程未设置或为空或 def map(request, jid): journeys = None if request.user.is_authenticated: journeys = Journey.objects.filter(user_id=request.user.id) #some stuff context = { 'jc': len(journeys), #only

标题说明了一切。两天前,以下代码工作正常,但现在
旅程
未设置或为空或

def map(request, jid):
    journeys = None
    if request.user.is_authenticated:
        journeys = Journey.objects.filter(user_id=request.user.id)

    #some stuff

    context = {
        'jc': len(journeys), #only for testing
        'journeys': journeys
    }

    return render(request, 'JourneyMap/map.html', context)
map.html扩展了base.html

insidebase.html:

<div class="dropdown-menu" aria-labelledby="dropdown05">
    <p>{{ jc }}</p> <-- only for testing
    {% for journey in journeys %}
        {% if journey.user_id == user.user_id %}
            {% if forloop.counter < 4 %}
                <a class="dropdown-item"
                   href="{% url 'JourneyMap_journey' jid=journey.id %}">{{ journey.title }}</a>
            {% endif %}
        {% endif %}
    {% endfor %}
</div>


{{jc}

看起来
旅程
长度是1,所以实际上设置了变量

我认为您的用户检查在这里失败

{%if-travely.user\u id==user.user\u id%}

什么是
user.user\u id
user
是否是存在于给定上下文之外的另一个变量?那可能还没定下来

否则,如果要检查当前用户的id,可能应该执行以下操作:


{%if-travely.user\u id==request.user.id%}

user
是请求的django捷径。user
。在上下文中使用
request.user…
或自己设置用户不会改变任何东西。我还尝试输出
user.user\u id
travely-user\u id
,它们是相同的。此外,问题中显示的代码周围还有一个
if user.is\u authenticated
。这意味着设置用户也是因为我可以输出id。当您在视图中通过身份验证用户进行筛选时,我看不到在模板中检查
user
的原因
travely.objects.filter(user\u id=request.user.id)
Yes,我还假设它是一个不同的
用户
,而不是
请求
中的django默认
用户
@Matze,你试过从模板中删除支票吗?下拉列表又是空的吗?是的,我刚刚尝试过它,因为我意识到它是多余的,因为我已经通过view方法中的id对它进行了过滤。不幸的是,没有更改任何内容。您可以在模板中不输出
{{jc}

,而是执行
{{journies.count}

?还是1号吗?