OK, I got it. I was defining my own managers on Episode, and there was
no default manager. Adding an objects=models.Manager() solved it.
Maybe this should be added to the documentation? Should I create a
ticket?

On Jan 28, 1:56 am, orestis <[EMAIL PROTECTED]> wrote:
> This is VERY WEIRD:
>
> In [2]: import django
> In [3]: django.get_version()
> Out[3]: u'0.97-pre-SVN-7031'
> In [4]: from leach.models import Category
> In [5]: a = Category.objects.all()[0]
> In [6]: a.episodes
> ---------------------------------------------------------------------------
> TypeError                                 Traceback (most recent call
> last)
>
> /Users/orestis/Developer/skai/skai/<ipython console>
>
> /opt/local/lib/python2.4/site-packages/django/db/models/fields/
> related.py in __get__(self, instance, instance_type)
>     246                 clear.alters_data = True
>     247
> --> 248         manager = RelatedManager()
>     249         manager.core_filters = {'%s__pk' % rel_field.name:
> getattr(instance, rel_field.rel.get_related_field().attname)}
>     250         manager.model = self.related.model
>
> TypeError: __init__() takes at least 2 arguments (1 given)
>
> ----
>
> Here is the code:
>
> class Kind(models.Model):
>     title = models.CharField(max_length=100)
>     description = models.TextField()
>     extension_final = models.CharField(max_length=10)
>     extension_temp = models.CharField(max_length=10)
>     command = models.TextField()
>
> class Category(models.Model):
>     title= models.CharField(max_length=100)
>     description = models.TextField(blank=True)
>     kind = models.ForeignKey(Kind, radio_admin=True )
>     skai_id = models.IntegerField(unique=True)
>     list_url = models.URLField(max_length=500)
>     #the episode url uses placeholders so it can't be verified
>     episode_url = models.URLField(max_length=500, verify_exists=False)
>     episode_skai_id_regexp = models.CharField(max_length=200)
>     episode_file_url_regexp = models.CharField(max_length=200)
>
> class EpisodeManager(models.Manager):
>     def __init__(self, status, *args, **kwargs):
>         self.status = status
>         super(models.Manager, self).__init__(*args,**kwargs)
>
>     def get_query_set(self):
>             return super(EpisodeManager,
> self).get_query_set().filter(status=self.status)
>
> class Episode(models.Model):
>     category = models.ForeignKey(Category, related_name='episodes')
>     skai_id = models.IntegerField(unique=True)
>     file_url = models.URLField(max_length=500)
>     filename = models.CharField(max_length=500, editable=False)
> #autopopulate this from id
>     published = models.DateField(editable=False)
>     ready = models.DateField(null=True, editable=False)
>     status =
> models.CharField(max_length=30,choices=( ('pending','Pending'),
>     ('downloading','Downloading'),('waiting', 'Waiting'),
> ('converting','Converting'), ('finished','Finished') ))
>
>     pending = EpisodeManager('pending')
>     downloading = EpisodeManager('downloading')
>     waiting = EpisodeManager('waiting')
>     converting = EpisodeManager('converting')
>     finished = EpisodeManager('finished')
>
> ----
>
> Everything works in admin, I have added some sample data. When some
> code tries to access 'categoty.episodes' it blows up. Beats me why...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to