Django递归模型

时间:2018-05-12 19:09:43

标签: django recursion filetree

我正在创建自己的&#34;云服务器&#34;与django,我的项目和文件。 我试图创建树文件结构,但我无法弄清楚如何做到这一点 以及如何创建基于用户名的URL,如(username / root / home / Documents / ...)我也对一些好的链接以及身份验证和django样式云服务器解决方案的示例感兴趣。<登记/>
models.py

class BasicFile(models.Model):
    file_name = models.CharField(max_length=80)
    last_edit = models.DateTimeField(default=datetime.now, blank=True)
    sub_folders = models.IntegerField()
    sub_files = models.IntegerField()

    def __str__(self):
        return self.file_name


views.py

class IndexView(LoginRequiredMixin, ListView):
    template_name = 'cloud/index.html'
    context_object_name = 'project_file'

    def get_queryset(self, *args, **kwargs):
        return ProjectFile.objects.all()



urls.py

re_path(r'^(?P<username>)/$', views.IndexView.as_view(), name='index'),
re_path(r'^(?P<username>/f1/f1_child)/$', views.IndexView.as_view(), name='index'),

1 个答案:

答案 0 :(得分:0)

为了能够从文件对象创建嵌套结构,您可以创建一个可选关系,以便文件可以拥有父母&#39;然后你可以从中建立一棵树。

为此,您可以在模型中添加字段;

parent = models.ForeignKey("self", blank=True)

这可能有助于您理解身份验证和用户; https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication