簡體   English   中英

在帶有可變參數的Django模板中循環

[英]Looping in django template with variable parameter

我想獲取所有類Material的詳細信息,其中user = user_id這是models.py:

class Material(models.Model):
    subject = models.CharField(max_length=10)
    topic = models.CharField(max_length=50)
    user = models.IntegerField()

和我的views.py:

def add_material(request):
    c = {}
    c.update(csrf(request))
    if 'user_session' in request.session:
        user_id = request.session['user_session']
        material_array = Material.objects.filter(user=user_id).values()
        materials_len = len(material_array)
        c['m_len'] = materials_len
        for i in range(0, materials_len):
            c['material_id_'+str(i)] = material_array[i]
        return render_to_response('add_material.html',c)
    else:
        return HttpResponseRedirect('/user')

而我的add_material.html是:

{% for i in range(m_len) %}
    <tr>
    {% for j in material_id_+str(i) %}
        {{j.subject}}
        {{j.topic}}
    {% endfor %}
    </tr>
{%endfor%}

所以我在模板中出現錯誤,如何在for循環中插入變量?

這就是我要怎么做。

views.py

def add_material(request):
    c = {}
    c.update(csrf(request))
    if 'user_session' in request.session:
        user_id = request.session['user_session']
        material_array = Material.objects.filter(user=user_id)
        c.update({'materials': material_array})
        return render_to_response('add_material.html', c)
    else:
        return HttpResponseRedirect('/user')

模板

{% for material in materials %}
    <tr>
        <td>{{ material.subject }}</td>
        <td>{{ material.topic }}</td>
        <td>{{ material.user.username }}</td>
    </tr>
{% endfor %}

您可以包括任何您喜歡的用戶字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM