Я работаю на Django проект, где одна модели (позволяет сказать, документ) имеет следующие поля:Джанго на заказ Разрешения на Authorization
#In models.py
class Document (models.Model):
choice = (('Yes','Yes'), ('No','No'))
authorized = models.CharField (max_length=3, choices=choice, default='No')
Теперь, как обычный пользователь создает объект Document, уполномоченное поле нет. Тем не менее, начальник должен авторизовать то же самое до его фактического утверждения. Теперь, есть ли система разрешений в django, где один пользователь может создать объект, но не разрешать, тогда как другой пользователь - у кого есть разрешение - может разрешить? Если нет, единственный способ сделать это - создать пользовательское поле в пользовательской модели и проверить его каждый раз?
Да, мне лучше пойти с BooleanField, мне плохо. Но люди не суперпользователи. И я не хочу, чтобы это использовалось с администратором, но с общими взглядами. Например, кто-то создает счет-фактуру (фактическое название модели - преследование и продажа). Когда-то созданный старший уполномочил его. Все это должно происходить во взглядах, а не через администратора и, конечно, не через суперпользователей. – Sayantan
@Vishes_shell ... Спасибо, помощник. Но проблема, которую я хочу сказать, заключается в том, как я могу помешать одному человеку (которому не разрешено «разрешать» форму) от доступа к нему. Послушайте, я создаю объект A, и кто-то должен его разрешить. Это похоже на рабочий процесс. Теперь, если эта доступность будет обработана путем проверки пользовательского поля request.user.is_permitted_to_authorize, или есть лучший способ? – Sayantan
@SayantanGanguly, что вам в основном нужно сделать, создать определенное разрешение, которое вы бы назначили превосходным пользователям, или создать группу, представляющую превосходных пользователей, и в представлении зависит от 'user.has_perm' или' group_name в user.groups' вас будет отображать одну из двух форм (один с разрешенным полем и один без). И что произойдет там, если вы войдете на страницу в качестве превосходного пользователя, вы увидите форму, включающую «разрешенный» ввод, но если вы не выше, вы даже не знаете, что такое поле существует. –