Django имеет возможность давать права доступа на основе пользователей / и / или / групп на таблицу .
Вот пример:
Мне бы хотелось иметь более детальную детализацию: я хотел бы, чтобы этот принцип использовался, но для строк таблиц.
Идея заключается в следующем: пользователь может создать что-то (независимо от таблицы) и хотел бы поделиться этим (только для чтения / / / чтения-записи) с другими пользователями.
Я думал о такой модели, но она не работает, потому что она станет слишком большой. Как я могу это реализовать?
class AccessRight(models.Model):
A_R = 1
A_W = 2
A_RW = A_R | A_W
ACCESS_RIGHTS = {A_R: {'long': 'Read', 'short': 'R'},
A_W: {'long': 'Write', 'short': 'W'},
A_RW: {'long': 'Read/Write', 'short': 'RW'}, }
table_name = models.CharField(max_length=50, default=None, blank=True,
db_index=True)
row_id = models.PositiveIntegerField(default=None, blank=True, )
user = models.ForeignKey(User, blank=False, on_delete=models.CASCADE)
right = models.IntegerField(
choices=[(idx, '{} ({})'.format(desc['long'], desc['short']))
for idx, desc in ACCESS_RIGHTS.items()],
default=A_R)