Добрый стек! Надеюсь, вы мне поможете.
Я пытаюсь разработать веб-приложение, с помощью которого я могу легко разрабатывать django-приложения и распространять их среди пользователей. Пользователи веб-приложения должны иметь возможность создавать различные проекты и приглашать других пользователей. В среде проекта все django-приложения должны быть доступны. Данные приложений должны зависеть от проекта и быть доступными и редактируемыми только тогда, когда вы являетесь частью проекта.
Я изо всех сил пытаюсь разработать правильные структуры, чтобы данные были доступны и редактировались, только если вы являетесь частью проекта.
Подводя итог:
- Iесть 1 проект Django
- У меня есть несколько приложений, и я буду добавлять их позже.
- Пользователи могут запускать проекты и приглашать пользователей.
- В рамках проекта всеприложения доступны, но видны и доступны для редактирования только данные, относящиеся к проекту.
- Если у пользователя нет доступа, он не может видеть данные проекта.
Вопросы, которыепугают меня в голове: Как мне настроить мою модель? Как мне настроить права доступа? Как мне убедиться, что они не могут получить доступ к данным проекта, к которым у них нет разрешений.
Я понимаю, что не существует единственно верного решения, но я ищу рекомендации по передовым методам или рабочим примерам. ,Я просто не знаю, с чего начать.
Я уже много искал в интернете, но не могу найти ничего похожего на то, что я хочу сделать.
Моя точка зренияВ настоящее время создается класс проекта в models.py. В models.py я создаю класс проекта, который связан с классом пользователей. Затем я создаю свои URL-адреса так, чтобы они выглядели так: www.example.com/project//app1/terminpage
Обновление:
Я продолжаю свою первоначальную мысль. Кажется, это работает. Я просто не уверен, что это «правильный» способ. То, что я сделал до сих пор:
- Я создал приложение проектов, в котором я создал модель проекта.
- Я создал отношение многие ко многим между моделью проекта и пользователями.
- Я создал связь между всеми остальными моделями и моделью проекта с Foreignkey.
- Я восстановил все свои URL-адреса так, чтобы они выглядели так: www.example.com/project//app/. ..
- Я создал декоратор, который объединяет декоратор login_required и декоратор, который я создал сам, который проверяет, имеет ли пользователь отношение к проекту, и перенаправит, если нет.