python - I can't access QuerySet in Manager's init method in Django -


i'd queryset of model in manager's __init__ method setup pagination queryset results. reason why want setup pagination in __init__ method because have lots of simple methods in manager getpage , getnumberofpages etc. simplify abstraction , don't want duplicate code setup paginator across these methods.

for example, let's there article model, has custom articlemanager , looks this:

class articlemanager(models.manager):     def __init__(self):         super(articlemanager, self).__init__()         allobjects = super(articlemanager, self).get_queryset()         self.articlepaginator = paginator(allobjects, 10)   class article(models.model):     # blah blah     # model fields everywhere     objects = articlemanager() 

fourth line of code super(articlemanager, self).get_queryset() returns attributeerror exception:

attributeerror: 'nonetype' object has no attribute '_meta' 

i guess should have done more initialize manager, i'm not sure is. i've not found alike want in django docs or in other stackoverflow questions. guess there might wrong in approach, if that's case i'd grateful if point out.

you're calling parent's get_query() method. you're not overriding there's no point, call on self. better yet, make operation lazy. properties option:

class articlemanager(models.manager):     @property     def article_paginator(self):         return paginator(self.get_queryset(), 10) 

then can access via article.objects.article_paginator.


Comments

Popular posts from this blog

ios - RestKit 0.20 — CoreData: error: Failed to call designated initializer on NSManagedObject class (again) -

laravel - PDOException in Connector.php line 55: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) -

java - Digest auth with Spring Security using javaconfig -