0
我有两个型号:Prefetch_related和我的模型
class Folder(AbstractName):
parent = models.ForeignKey('self', blank=True, null=True)
owner = models.ForeignKey(User)
typeof = models.ForeignKey(TypeParent, blank=True, null=True)
class File(AbstractName):
folder = models.ForeignKey(Folder, blank=True, null=True)
owner = models.ForeignKey(User)
typeof = models.ForeignKey(TypeChild)
我的文件夹列表(至极应该显示文件夹&孩子的,喜欢探险的文件。)产生许多疑问。
class FolderList(ListView, LoginRequiredView):
model = Folder
def get_queryset(self):
return Folder.objects.filter(owner=self.request.user, parent=None).prefetch_related('folder_set').prefetch_related('file_set')
在我的模板:
#folder_list
{% include 'core/_folders.html' %}
#_folders
{% if object_list %}
{% for object in object_list %}
<li><a href="{% url 'folder_detail' object.pk %}">{{ object.name }}</a></li>
<ul>
{% for file in object.file_set.all %}
<li><i>{{ file }}</i></li>
{% endfor %}
{% with filename='core/_folders.html' %}
{% with object_list=object.folder_set.all %}
{% include filename %}
{% endwith %}
{% endwith %}
</ul>
{% endfor %}
</ul>
{% endif %}
感谢。 (并对不起我的英语)
嗨,ddt is alreay installed。但是,我的select_related不起作用(模型在select_related或model_set?)谢谢。 – user3216336
@ user3216336我认为你正在寻找'.select_related('file')',但你应该检查后向关系是否如此工作,因为从技术上讲它是一对多而非一对一的。 –
是的,没错!我迷路了,你能指导我吗?谢谢! – user3216336