0

Ich baue eine Q & Eine Stil-Community mit Kategorien mit Foren, die Themen enthalten und jedes Thema hat Beiträge. Auf der Zielseite möchte ich beliebte Themen in allen Kategorien und innerhalb einer Kategorie alle beliebten Themen innerhalb dieser Kategorie. Ich habe Vorlagenfilter dafür definiert, aber sie zeigen nichts auf der Kategorien- oder Home-Ebene an. Sie arbeiten auf Forenebene, dh innerhalb eines bestimmten Forums können alle Themen in diesem Forum abgerufen werden. Innerhalb einer Kategorie sollen alle Themen aus jedem Forum in dieser Kategorie abgerufen werden. Derzeit wird nur eine Liste der Foren in dieser Kategorie und nicht die Liste aller Themen zurückgegeben. Auf der Home-Ebene soll es eine Liste von Themen über alle Kategorien hinweg zurückgeben und Foren enthalten, aber ich bekomme nichts.Warum funktioniert meine Modellabfrage nicht richtig?

Kann mir bitte jemand helfen, herauszufinden, was hier passiert :? Dank

Mein TOPICSFORALL.HTML:

{% block card_body %} 
{% for topic in topic_list %} 
    {% include "subjectcard.html" with topic=topic %} 
{% endfor %} 
{% endblock %} 

Mein SUBJECTCARD.HTML:

{% block card_body %} 
{% for topic in topic_list %} 
    {% include "subjectcard.html" with topic=topic %} 
{% endfor %} 
{% endblock %} 

Mein SITE_BASE.HTML:

{% extends "theme_bootstrap/base.html" %} 
{% load i18n pybb_tags topicsbycat topicsbyforum %} 
{% load static %} 

{% catindexlist as catindexlisted %} 
{% topicsbyall as topicsbyallcatnforum %} 

... 
{% block body %} 
    <!-- Main hero unit for a primary marketing message or call to action --> 

    <div class="col-xs-2 col-sm-3 col-md-2 col-lg-2" style="border-right:solid;text-align:right;height:99%;padding:0 0 0 0px;" id="sidebar">{% include "categoryindex.html" %}</div> 
    <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-3 col-md-10 col-md-offset-2 col-lg-10 col-lg-offset-2" id="homebread">{% include "breadcrumbbt.html" %}</div> 

    {% if category %} 

    <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-3 col-md-10 col-md-offset-2 col-lg-10 col-lg-offset-2" style="height:auto;padding-bottom:10px;text-align:center;">{% include "topicstyleforumindex.html" %}</div> 
    <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-3 col-md-10 col-md-offset-2 col-lg-10 col-lg-offset-2" style="height:auto;padding-bottom:10px;text-align:center;">{% include "topicsforall.html" with topic_list=category|topicsbycat %}</div> 

    {% elif forum %} 

    <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-3 col-md-10 col-md-offset-2 col-lg-10 col-lg-offset-2" style="height:auto;padding-bottom:10px;text-align:center;">{% include "topicindex.html" %}</div> 
    <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-3 col-md-10 col-md-offset-2 col-lg-10 col-lg-offset-2" style="height:auto;padding-bottom:10px;text-align:center;">{% include "topicsforall.html" with topic_list=forum|topicsbyforum %}</div> 

    {% elif topic %} 
    <div class="main-block col-xs-6 col-xs-offset-1 col-sm-6 col-sm-offset-3 col-md-6 col-md-offset-2 col-lg-6 col-lg-offset-2" id="content" style="height:80%;">{% include 'pybb/topic.html' %}</div> 

    {% else %} 

    <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-3 col-md-10 col-md-offset-2 col-lg-10 col-lg-offset-2" style="height:auto;padding-bottom:10px;text-align:center;">{% include "topicstyleforumindex.html" %}</div> 
    <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-3 col-md-10 col-md-offset-2 col-lg-10 col-lg-offset-2" style="height:auto;padding-bottom:10px;text-align:center;">{% include "topicsforall.html" with topic_list=topicsbyallcatnforum %}</div> 

    {% endif %} 

{% endblock %} 

Mein PYBB_TAGS.PY:

@register.assignment_tag 
def topicsbyall(): 
    topic_list = Topic.objects.all().order_by('-updated', '-created') 
    return topic_list 

Mein TOPICSBYFORUM.PY: register = template.Library()

@ register.filter

def topicsbyforum(forum): 
    topic_list = Topic.objects.filter(forum=forum).order_by('post_count','views','-updated') 
    return topic_list 

Mein TOPICSBYCAT.PY:

register = template.Library() 

@register.filter 
def topicsbycat(category): 
    topic_list = [] 
    catforum = Forum.objects.filter(category=category).order_by('topic_count','post_count') 
    for forum in catforum: 
     forumtopics = Topic.objects.filter(forum=forum).order_by('post_count','views','-updated') 
     topic_list.append(forumtopics) 
    return topic_list 

Antwort

0

Ich bin nicht sicher, was genau Das Problem war, aber ich habe es irgendwie funktioniert, indem ich die Template-Filter so geändert habe, dass sie nur auf queryset gesetzt wurden und mehr for-Schleifen in meinen Templates benutzten, während ich die Filter anrief. Ich schätze, Filter haben in diesem Bereich einige Einschränkungen. Ich werde versuchen, genauere Punkte zu finden, die dieses Problem klären und diesen Beitrag aktualisieren, aber bis dahin, dank der 6 Leute, die versucht haben, meine Frage zu beantworten!

Verwandte Themen