我正在使用 Django 为我的项目和文件制作自己的“云服务器”。
我正在尝试创建树形文件结构,但我不知道该怎么做。
以及我如何制作基于用户名的 URL,例如 (username/root/home/Documents/...)
我也对一些好的链接和身份验证示例以及 django 风格的云服务器解决方案感兴趣。
模型.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'),
最佳答案
为了能够从您的文件对象创建嵌套结构,您可以创建一个可选的关系,以便文件可以具有“父级”,然后您可以从中构建树。
为此,您可以向模型中添加一个字段;
parent = models.ForeignKey("self", blank=True)
这可能有助于您了解身份验证和用户; https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication
关于Django递归模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50309827/