Django ManyToMany字段未使用自定义管理器预先选择行
||
Django 1.2.5:我有一个带有自定义管理器的模型。数据已正确保存,但未正确检索相关对象。
我的模型是:
问题->与主观统计有关
SubjectiveStatistic将Statistic扩展为代理。它具有一个自定义管理器,用于将结果集限制为仅在\'type \'字段与\'SubjectiveStatistic \'匹配的情况下(类型字段包含对象的类名)。
这是问题:
class Question(models.Model):
subjective_statistic = models.ManyToManyField(SubjectiveStatistic, null=True, blank=True)
这是主观统计:
class SubjectiveStatistic(Statistic):
## Use a custom model manager so that the default object collection is
# filtered by the object class name.
objects = RestrictByTypeManager(\'SubjectiveStatistic\')
## Override the __init__ method to set the type field
def __init__(self, *args, **kwargs):
self.type = self.__class__.__name__
return super(SubjectiveStatistic, self).__init__(*args, **kwargs)
class Meta:
proxy = True
这是经理:
from django.db import models
## Custom model manager that returns objects filtered so that \'type\' == a
# given string.
class RestrictByTypeManager(models.Manager):
def __init__(self, type=\'\', *args, **kwargs):
self.type = type
return super(RestrictByTypeManager, self).__init__(*args, **kwargs)
def get_query_set(self):
return super(RestrictByTypeManager, self).get_query_set().filter(type=self.type)
我需要怎么做才能正确返回相关对象?尽管数据库中存在关系,但question.subjective_statistic.exists()不会返回任何内容。
也许是因为RestrictByTypeManager扩展了Manager而不是ManyRelatedManager(但是我不能因为那是一个内部类)还是类似的东西?
没有找到相关结果
已邀请:
1 个回复
缝皋
模型中的自定义管理器,请在自定义管理器的定义中添加
:
这样,
将被用作
模型的管理器,无论是直接还是反向访问(如许多关系)。 此处有更多信息:控制自动Manager类型