Джанго рекурсивная модель - PullRequest
0 голосов
/ 12 мая 2018

Я создаю свой собственный «облачный сервер» с 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 голосов
/ 12 мая 2018

Чтобы иметь возможность создавать вложенные структуры из ваших файловых объектов, вы можете создать необязательные отношения, чтобы у файлов могли быть «родители», из которых вы затем могли бы построить дерево.

Для этого вы можете добавить поле к вашей модели;

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

Это может помочь вам в понимании аутентификации и пользователей; https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...