У меня есть модель ( таблица ) Book. И через Django administration я создал две группы ModeratorRu/ModeratorEU и они имеют право редактировать книги, но они могут редактировать все книги, а я хочу сделать так, чтобы возможность редактировать была только на те книги, которые соответствуют их группе т.е. человек из ModeratorRu мог изменять книгу, у которой русский язык.
Описание модели ниже.
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey("Author", on_delete=models.SET_NULL, null=True)
# Внешний ключ используется потому, что книга может иметь только одного автора, но авторы могут иметь
# несколько книг
# Author как строка, а не объект, потому что он еще не был объявлен в файле.
summary = models.TextField(
max_length=1000, help_text="Enter a brief description of the book"
)
isbn = models.CharField(
"ISBN",
max_length=13,
help_text='13 Character <a href="https://www.isbn-international.org/content/what-isbn'
'">ISBN number</a>',
)
genre = models.ManyToManyField(Genre, help_text="Select a genre for this book")
# используется потому, что жанр может содержать много книг, а книга может охватывать много жанров.
# Класс жанра уже определен, поэтому мы можем указать объект выше.
language = models.ForeignKey("Language", on_delete=models.SET_NULL, null=True)
def display_genre(self):
return ", ".join([genre.name for genre in self.genre.all()[:3]])
display_genre.short_description = "Genre"
def get_absolute_url(self):
return reverse("book-detail", args=[str(self.id)])
def __str__(self):
return self.title