मैं भी एक उचित समाधान के लिए सीच कर रहा हूं। लेकिन ऐसा कोई नहीं मिला जो मुझे अपने साथ आना पड़ा। views.py
class VocationsListView(ListView):
context_object_name = "vocations"
template_name = "vocations/vocations.html"
paginate_by = 10
def get_queryset(self):
get = self.request.GET.copy()
if(len(get)):
get.pop('page')
self.baseurl = urlencode(get)
model = Vocation
self.form = SearchForm(self.request.GET)
filters = model.get_queryset(self.request.GET)
if len(filters):
model = model.objects.filter(filters)
else:
model = model.objects.all()
return model
def get_context_data(self, **kwargs):
context = super(VocationsListView, self).get_context_data(**kwargs)
context['form'] = self.form
context['baseurl']= self.baseurl
return context
models.py
class Vocation(models.Model):
title = models.CharField(max_length = 255)
intro = models.TextField()
description = models.TextField(blank = True)
date_created = models.DateTimeField(auto_now_add = True)
date_modified = models.DateTimeField(auto_now = True)
created_by = models.ForeignKey(User, related_name = "vocation_created")
modified_by = models.ForeignKey(User, related_name = "vocation_modified")
class Meta:
db_table = "vocation"
@property
def slug(self):
return defaultfilters.slugify(self.title)
def __unicode__(self):
return self.title
@staticmethod
def get_queryset(params):
date_created = params.get('date_created')
keyword = params.get('keyword')
qset = Q(pk__gt = 0)
if keyword:
qset &= Q(title__icontains = keyword)
if date_created:
qset &= Q(date_created__gte = date_created)
return qset
तो बुनियादी तौर पर मैं हर मॉडल वर्ग है, जहां मैं खोज की कार्यक्षमता को लागू करना चाहते हैं कोड के इस टुकड़े जोड़ें। इसका कारण यह है कि हर मॉडल के लिए फिल्टर स्पष्ट रूप से तैयार रहने की
@staticmethod
def get_queryset(params):
date_created = params.get('date_created')
keyword = params.get('keyword')
qset = Q(pk__gt = 0)
if keyword:
qset &= Q(title__icontains = keyword)
if date_created
qset &= Q(date_created__gte = date_created)
return qset
यह है कि मैं मॉडल
स्रोत
2011-07-20 08:47:00
बिल्कुल सही! पेजिनेशन काम करने के लिए मुझे विरासत आदेश (सूची दृश्य, फॉर्ममिक्सिन) को स्वैप करना पड़ा। – laffuste
यह अच्छा है लेकिन सभी रूपों को आउटपुट करने के लिए मुझे टेम्पलेट में क्या उपयोग करना चाहिए। मुझे फॉर्म का केवल एक उदाहरण दिखाई देता है जो कि पहला तत्व और ऑब्जेक्ट_लिस्ट है जो मॉडल सूची है। –
क्या आप टेम्पलेट कोड सूचीबद्ध कर सकते हैं? –