class Author(Model):
state = models.CharField('ST')
class Essay(Model):
authors = models.ManyToManyField("Author",
through='EssayAuthor')
>> mylist
[ <Essay: A1>, <Essay: B4>, <Essay: C9>, <Essay: A3> ... ]mylist是一个QuerySet。我想用Author的state向mylist中的每个Essay实例添加另一个属性。假设具有多个作者的书籍的状态是等价的。因此,对于一篇有两个作者的文章,使用哪个作者并不重要。
因此,我希望能够做到以下几点:
>> essay0 = mylist[0]
>> essay0.state
'AK'annotate方法只对数值/浮点值有用,所以我不能使用它。如果我使用生成器注入属性,我如何重建QuerySet?
发布于 2011-10-13 13:58:00
你能在你的模型类中做到这一点吗?
class Essay(Model):
authors = models.ManyToManyField("Author",
through='EssayAuthor')
@property
def state(self):
if self.authors.count():
return self.authors[0].state
else:
return null我认为在这种情况下,您不能动态地注释您的查询集,特别是使用“如果有多个作者,则只使用一个作者”的逻辑。另一种选择是使用extra()为这些附加数据构造更复杂的SQL查询。
https://stackoverflow.com/questions/7749430
复制相似问题