Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django recursive model

I'm making my own "cloud server" with django, for my projects and files. I'm trying to create tree file structure, but I cant figure out the way to do it.
And how I can make username based URL, like (username/root/home/Documents/...)
I'm also interested of some good links and examples of authentication and django style cloud server solutions.

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'),
like image 897
Jertzuuka Avatar asked Dec 02 '25 06:12

Jertzuuka


1 Answers

To be able to create a nested structure from your file objects you could create an optional relationship so that files can have 'parents' which you could then build up a tree from.

To do so you could add a field to your model;

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

This may help with your understanding of authentication & users; https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication

like image 104
markwalker_ Avatar answered Dec 04 '25 00:12

markwalker_



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!