Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模板过滤_Python_Html_Django_Twitter Bootstrap - Fatal编程技术网

Python Django模板过滤

Python Django模板过滤,python,html,django,twitter-bootstrap,Python,Html,Django,Twitter Bootstrap,我试图创建一个网站,在那里你可以看到不同的“等级”和其中的人。我已经得到它来创建排名到有自己的可折叠面板,因为我使用的是Bootstrap3,但我无法列出拥有该排名的用户。请帮忙 #team.html template <div class="container"> <div class="col-md-2"> <div class="panel-group" id="accordion"> {% for rank in Rank_list %}

我试图创建一个网站,在那里你可以看到不同的“等级”和其中的人。我已经得到它来创建排名到有自己的可折叠面板,因为我使用的是Bootstrap3,但我无法列出拥有该排名的用户。请帮忙

#team.html template
<div class="container">
 <div class="col-md-2">
  <div class="panel-group" id="accordion">
    {% for rank in Rank_list %}
    <div class="panel panel-default">
      <div class="panel-heading">
        <h4 class="panel-title">
          <a data-toggle="collapse" data-parent="#accordion" href="#collapse{{rank.rank_num}}">
            {{ rank.rank_name }}s
          </a>
        </h4>
      </div>
      <div id="collapse{{rank.rank_num}}" class="panel-collapse collapse in">
        <div class="panel-body">
          {% for name in User_list %}
            <li>
              <p>{{name}}</p>
              </li>
          {% endfor %}
        </div>
      </div>
    </div>
    {% endfor %}
  </div>
</div>

您需要在外键中添加一个
相关的\u名称
。像这样:

rank = models.ForeignKey(Rank, related_name='users')
然后可以通过如下循环访问用户:

{% for user in rank.users.all %}
   {{ user }}
{% endfor %}

对于每个
Rank
对象,您可以反转关系并获取与该
Rank
相关的所有
用户

# models.py
# - Use `related_name` for making relationship that are easy to read and follow
# - https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.related_name
class User(...):
    rank = models.ForeignKey(Rank, related_name="users")  

# view.py
# - Use prefetch_related allows us to cut down our queries when iterating as we do an up-front join
# - https://docs.djangoproject.com/en/dev/ref/models/querysets/#prefetch-related
...
def get_queryset(self):
    return Rank.objects.prefetch_related('users')('rank_num')  

# template.py
{% for rank in Rank_List %} # You shouldn't capitalise your template variables
    {% for user in rank.users.all %}  
        {{ user }}
    {% endfor %}
{% endfor %}

最后,您应该使用

谢谢!他们的帮助正是我所需要的!无需显式添加相关的_名称。Django默认设置一个,即
user\u set
。不客气!请将答案标记为已接受。此外,我建议使用Django的内置用户模型,如下面的评论所述。参见Django文档:我将内置用户模型用作其他东西。谢谢你!
# models.py
# - Use `related_name` for making relationship that are easy to read and follow
# - https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.related_name
class User(...):
    rank = models.ForeignKey(Rank, related_name="users")  

# view.py
# - Use prefetch_related allows us to cut down our queries when iterating as we do an up-front join
# - https://docs.djangoproject.com/en/dev/ref/models/querysets/#prefetch-related
...
def get_queryset(self):
    return Rank.objects.prefetch_related('users')('rank_num')  

# template.py
{% for rank in Rank_List %} # You shouldn't capitalise your template variables
    {% for user in rank.users.all %}  
        {{ user }}
    {% endfor %}
{% endfor %}