मैं वर्तमान लेख के तहत NEXT POST और PREVIOUS POST शीर्षक दिखाना चाहता हूं जैसा कि नीचे दिखाया गया है:

enter image description here

अब तक मैं urls.py से डिटेल व्यू ऑब्जेक्ट पास कर रहा था:

urls.py

url(r'^(?P<pk>\d+)$', DetailView.as_view(model = Post, template_name = 'blog/post.html')), 

post.html में, मैं पोस्ट का शीर्षक और मुख्य भाग प्राप्त करने के लिए पोस्ट ऑब्जेक्ट का उपयोग कर रहा हूं।

<h2> {{post.title}} </h2>
<p> {{post.body|safe|linebreaks}} </p>

लेकिन तब मुझे एहसास हुआ कि मुझे इसे प्रदर्शित करने के लिए पदों की सूची नहीं मिल सकती है। इसलिए मैंने urls.py को views.py पर रीडायरेक्ट करने के लिए संशोधित किया जिसमें शामिल था

urls.py

url(r'^(?P<pk>\d+)$', views.post_details) 

views.py

post_details (request,pk):
return render(request, 'blog/post.html',{'message' : [Post.objects.all(),DetailView.as_view(model = Post)]})

अब जब मैंने post.html में शब्दकोश का उपयोग करने की कोशिश की, तो मुझे कोई आउटपुट नहीं मिल रहा है।

मैं post.html के पैरामीटर के रूप में DetailView और ListView दोनों को कैसे पास करूं और मैं इसे कैसे निकालूं?



हल किया गया

क्या Django ORM का उपयोग करके पिछला/अगला आइटम प्राप्त करने का कोई चतुर तरीका है?

0
sagar_jeevan 25 जिंदा 2017, 09:44

2 जवाब

आपको इसकी आवश्यकता नहीं है, अगली और पिछली दोनों चीजें हैं जिन्हें आप अतिरिक्त संदर्भ के रूप में पारित कर सकते हैं जिसके लिए एक get_context_data विधि

def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context['next_post'] = my_next_post
     context['prev_post'] = my_prev_post
     return context

फिर आप अपने टेम्प्लेट में next_post और prev_post का उपयोग कर पाएंगे।

अगली और पिछली पोस्ट पुनर्प्राप्त करने के कम से कम एक तरीके के लिए Django में अगले और पिछले ऑब्जेक्ट प्राप्त करना देखें।

2
Community 23 मई 2017, 15:24
मैं एक नौसिखिया हूं, इसलिए यह मेरे लिए थोड़ा जटिल लग रहा था। इसके बजाय, मैंने pk का उपयोग किया जो urls.py में पारित हुआ था और फिर context = get_object_or_404(Post, id=pk) का उपयोग करके views.py में ऑब्जेक्ट प्राप्त किया। pk को घटाकर और बढ़ा कर पिछला और अगला पोस्ट पाया। फिर बाद में, रेंडर का उपयोग करके इसे सभी टेम्पलेट में पास कर दिया। क्या यह जटिल लगता है?
 – 
sagar_jeevan
30 जिंदा 2017, 19:35

मुझे लगता है कि इसके लिए आपको अपना खुद का विचार लिखना होगा। आप पेजिनेशन की खोज कर रहे हैं और django उसके लिए एक अच्छी कार्यक्षमता प्रदान करता है (https:// docs.djangoproject.com/hi/1.10/topics/pagination/)।

-1
Matthias Gilch 25 जिंदा 2017, 09:48
मुझे लगता है कि यह कई पृष्ठों में फैली वर्तमान पोस्ट के लिए है। पिछला/अगला लिंक वर्तमान पोस्ट (अगले/पिछले पृष्ठ) के लिए है, न कि अगले/पिछले पोस्ट के लिए।
 – 
sagar_jeevan
25 जिंदा 2017, 10:00
मैंने प्रश्न विवरण संपादित किया है, अब एक तस्वीर शामिल है। मैं अगली और पिछली पोस्ट के शीर्षक दिखाना चाहता हूं।
 – 
sagar_jeevan
25 जिंदा 2017, 10:18
आह ठीक है... फिर आप stackoverflow.com/questions/6021694/…
 – 
Matthias Gilch
25 जिंदा 2017, 10:24
लिंक के लिए धन्यवाद!
 – 
sagar_jeevan
30 जिंदा 2017, 19:30