Как динамически реализовать разный доступ к разным пользователям в Django? - PullRequest
0 голосов
/ 19 мая 2019

Это несколько большая «нечеткая проблема», когда я сейчас пытаюсь обойти эту проблему и найти хорошее место для старта.

Я создаю учебное веб-приложение с использованием Django, в котором пользователи, которые все подписываются, будут зачислены на разные курсы. Все они должны использовать одни и те же «глобальные» модели, но с разными данными, основанными на курсе.

Конечная цель заключается в том, чтобы администраторы могли легко создавать несколько курсов, где пользователи могут получить доступ только к страницам в тех курсах, в которых они зарегистрированы.

В настоящее время я разбил это на следующие подзадачи:

  1. Создание страницы и содержимого, привязанного к моделям, привязанным к определенному «идентификатору курса»
  2. Предоставление пользователям только определенных прав доступа к страницам курсов, на которые они зарегистрированы (с использованием соответствующего идентификатора курса)
  3. Настройка представления администратора, чтобы администраторы могли легко создавать новые курсы и добавлять контент, относящийся к конкретному курсу, особенно если количество добавленных курсов увеличивается до + 10
  4. Поиск решения для «процесса регистрации», при котором администратор может решить (при регистрации, или после, или оба), какие пользователи связаны с какими курсами.

Я пытался погуглить, но не могу найти ничего, что конкретно касалось этого. Самое близкое (и несколько полезное), которое я получил, было: https://simpleisbetterthancomplex.com/tutorial/2018/01/18/how-to-implement-multiple-user-types-with-django.html

В настоящее время все готово для одного курса, что означает, что в самой «курсовой экосистеме» все работает. Теперь осталось создать несколько курсов. Не уверен, что я добавлю какой-либо конкретный код, но если это так, просто скажите слово!

Все указатели / советы / мысли о том, что делать, очень ценятся.

Заранее спасибо!

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