我正在运行 Django 1.1,并且无法让我的 ManytoManyField 工作的“limit_choices_to”选项。
我有两个模型:
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”对象)是那些具有“成员”值(用户对象)与“锁定”对象的“用户”(也是一个用户对象)。
我以为我已经遵循了 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“成员”属性?
感谢任何可以提供帮助的人。
凯尔