在作者模型中:
century = models.ManyToManyField(Century)
在视图中:
a = get_object_or_404(Author.objects, id=id)
s = Author.objects.filter(century__in=a).order_by('?')[:3]
错误:
异常值:'作者'对象不可迭代
怎么了?作者可能属于两个世纪,我希望从他的世纪/世纪中获得3位随机作者。
答案 0 :(得分:6)
a = get_object_or_404(Author.objects, id=id)
s = Author.objects.filter(century__in=a.century.all()).order_by('?')[:3]
答案 1 :(得分:3)
get_object_or_404()
将类作为第一个arg。 e.g。
a = get_object_or_404(Author, id=id)
评论更新:
在文档的任何地方都没有提到,但你是对的。事实上,查看代码(django/shortcuts/__init__.py
)表明get_object_or_404()
和get_list_or_404()
可以为他们的第一个arg采用Model,Manager或QuerySet。
咦。你每天都学到东西!