तो मेरे पास एक सूची है जो अलग-अलग ब्लॉग पेज प्रदर्शित कर रही है और वर्तमान में उन्हें अंतिम अद्यतन द्वारा ऑर्डर किया जा रहा है। हालांकि मैं चाहता हूं कि उन्हें post.specific.date द्वारा आदेश दिया जाए। मैं यह कैसे कर सकता हूँ? अगर मदद के लिए और कोड की जरूरत है तो कृपया कहें।

{% for post in posts %}

    <div class="...">

        <div class="...">
            {% for item in post.specific.blogpage_images.all|slice:"1" %}
                {% image item.image fill-400x400-c100 %}
                <p>{{ item.caption }}</p>
            {% endfor %}
        </div>
        <div class="...">
            <h3 class="...">{{ post.title }}</h3>
            <h5>{{ post.specific.intro }} <span
                    class="...">{{ post.specific.date }}</span></h5>
        </div>
        <div class="...">
            {{ post.specific.body|richtext }}

            <div class="...">

                <div class="...">

                    <p>
                        <button class="..."><b><a
                                class="effect-shine"
                                href="{% pageurl post %}">READ
                            MORE »</a></b>
                        </button>

                    </p>

                </div>
                <div class="...">
                    <p>
                        <span class="...">
                            <span class="...">
                                <a href="{% pageurl post %}#disqus_thread"> _
                                </a>
                            </span>
                        </span>
                    </p>
                </div>
            </div>
        </div>

    </div>

    <hr>
{% endfor %}

मेरा view.py कोड इस प्रकार है

def home(request):
    posts. Post.objects.all()
    paginator = Paginator(posts,4)
    page = request.GET.get('page')
    return render(request, 'base/home.html',{'posts':posts})

Model.py इस प्रकार है

class BlogIndexPage(Page):

def get_context(self, request, *args, **kwargs):
        context = super().get_context(request, *args, **kwargs)
        all_posts = BlogPage.objects.live().public().order_by('-first_published_at')
       paginator = Paginator(all_posts, 4)
        page = request.GET.get("page")
        try:
            posts = paginator.page(page)
        except PageNotAnInteger:
            posts = paginator.page(1)
        except EmptyPage:
            posts = paginator.page(paginator.num_pages)

        context["posts"] = posts
        return context

class BlogPage(Page):
1
Joelad 22 अक्टूबर 2019, 11:39

1 उत्तर

सबसे बढ़िया उत्तर

आप किसी भी list को बिल्ट-इन sorted फ़ंक्शन के साथ सॉर्ट कर सकते हैं, और आप इसके लिए एक सही key फ़ंक्शन निर्दिष्ट कर सकते हैं, इसे ऑर्डर करने के लिए जैसा आप चाहते हैं:

sorted(posts, key=lambda p: p.specific.date)

आप इसे अपने लूप के हिस्से के रूप में भी इस्तेमाल कर सकते हैं:

{% for post in sorted(posts, key=lambda p: p.specific.date) %}
2
Ofer Sadan 22 अक्टूबर 2019, 08:44