Django: «limit_choices_to» не работает на ManyToManyField

Я использую Django 1.1 и не могу заставить работать параметр "limit_choices_to" для моего ManytoManyField.

У меня есть две модели:

class MemberPhoto(ImageModel):
    title       = models.CharField(_('title'), max_length=255, blank=True, null=True)
    caption     = models.CharField(_('caption'), max_length=255, blank=True, null=True)
    date_added  = models.DateTimeField(_('date added'), default=datetime.now, editable=False)
    member      = models.ForeignKey(User)

    def __unicode__(self):
        return u'%s (%s)' % (self.member.username, self.id)

и

class lock(models.Model):
    user = models.ForeignKey(User, related_name="owner")
    to_user = models.ForeignKey(User, related_name="to_user")
    unlocked_photos = models.ManyToManyField(MemberPhoto, blank=True, null=True, limit_choices_to = {'member':'user'})
    objects = locking_manager()

во второй модели, я хочу убедиться в админке Django, что единственными объектами unlocked_photos ("MemberPhoto"), представленными в поле множественного выбора, являются те, у кого есть значение "member" (объект User) такое же, как "user" объекта "lock" (также объект User).

Я думал, что следил за документами Django по этому поводу, но это не работает. Я получаю следующая ошибка:

TemplateSyntaxError

Caught an exception while rendering: invalid input syntax for integer: "user"

Я пытался изменить "limit_choices_to" на такие вещи, как:

limit_choices_to = {'member': user} --- Не работает

limit_choices_to = {'member__username': 'kyle' } --- это ДЕЙСТВИТЕЛЬНО работает, но это бесполезно, я просто вручную указываю имя пользователя

Как я могу вместо этого получить пользователя из текущего объекта «блокировки» и отфильтровать этим свойство MemberPhoto «member»?

Спасибо никому w но может помочь.

Кайл

5
задан Kyle Duncan 20 August 2011 в 17:36
поделиться