希望你一切都好…
我对在html模板中使用自引用模型对象有一点误解。
models.py
class MyNumber(models.Model):
has_bro = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
numb = models.CharField(max_length=10)
def __str__(self) -> str:
return self.numb
views.py
def index(request):
context = {
'numbers': MyNumber.objects.all()
}
return render(request, 'test_folder/test_file.html', context)
假设我有像1这样的对象,它也有像1.1和1.2这样的引用对象。为了使它更复杂,让我们添加更多的对象,如1.1.1和1.1.2,它们引用1.1。
问题是如何使用<ul></ul>
HTML标记以嵌套格式获取所有对象,而不重复,例如:
* 1
* 1.1
* 1.1.1
* 1.1.2
* 1.2
到目前为止,我用我的一点知识得到了这个结果(如下):
* 1
* 1.1
* 1.2
* 1.1
* 1.1.1
* 1.1.2
* 1.2
帮助是赞赏!
1条答案
按热度按时间svmlkihl1#
你寻求的答案不仅仅是使用django模型的操作,它本身就有FK。看起来你需要实现一些树,这不是一个容易的技术任务。根据您的需求,如所需的性能等,您可能希望实现自己的解决方案或使用已经实现的解决方案。之前有一个后藤解决方案叫做django mptt,但是看起来已经被放弃了。无论在他们的github页面(https://github.com/django-mptt/django-mptt)上,他们都有有用的链接。这篇文章将是一个很好的起点,让你去-https://406.ch/writing/django-tree-queries/