У меня есть следующие модели:Django-хранители - Установка разрешений для объектов в отношениях на-ко-многим
проекта:
class Project(models.Model):
project_name = models.CharField(max_length=100, unique=True)
SearchCodes:
class SearchCode(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
search_code = models.CharField(max_length=3)
search_code_modifier = models.CharField(max_length=1)
class Meta:
unique_together = ('project', 'search_code', 'search_code_modifier',)
С Django-Guardian docs Я могу установить разрешения в администраторе Django. Тогда для проекта я могу проверить/ограничить доступ пользователей в представлении следующим образом:
def project_edit(request, pk_project):
project = get_object_or_404(Project, pk=pk_project)
project_name = project.project_name
user = request.user
# Check user permission at the object level by passing in this specific project
if user.has_perm('myApp.change_project', project):
...do something
Теперь здесь, где я застрял. Как установить разрешения для ЛЮБЫХ поисковых кодов, связанных с проектом в Django-Admin? Я не хочу устанавливать разрешения на уровне объекта для SearchCodes. Это будет всего лишь каждый экземпляр SearchCode. Скорее мне нужно иметь возможность установить в Admin:
Вы можете просмотреть каждый SearchCode, связанный с этим проектом, но не любые другие SearchCodes.
Пожалуйста, дайте мне знать, если мне нужно быть более конкретным - я попытался сохранить это как можно более общее.
Спасибо - любая помощь или указатели были бы весьма благодарны.
EDIT:
Я использовал Admin-Integration пример для настройки прав доступа на уровне объектов проекта в Django-Guardian.
Похоже, что в этот момент должен быть какой-то способ установить разрешения для всех поисковых кодов, связанных с этим конкретным экземпляром проекта, пока я на странице Object-Permissions для этого проекта.
Благодарим за отзыв. Это очень полезно (+1) для проверки разрешений после их установки, но я ищу указатели/учебник и т. Д. О том, как устанавливать разрешения для SearchCodes в Django-Admin. Хотя, я думаю, я, вероятно, могу использовать эту концепцию и откатывать свои собственные разрешения на уровне SearchCode - я бы предпочел сделать это в админке - ради пользователей и последовательности :) – beginAgain