Ограничить пользователей посещать личные журналы действий - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть блок и его подмножество статьи в модели

class Block(models.Model):
    STATUS = (
        (1,  'normal'),
        (0, 'deleted'),
    )
    name = models.CharField("block name", max_length=100)
    desc = models.CharField("block description", max_length=100)
    admin = models.CharField("block admin", max_length=100)
    status = models.IntegerField(choices=STATUS)

class Article(models.Model):
    STATUS = (
        (1,  'normal'),
        (0, 'deleted'),
    )
    tags = models.ManyToManyField(Tag, blank=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    block = models.ForeignKey(Block, on_delete=models.CASCADE)
    title = models.CharField(max_length=100)

Я хотел бы ограничить пользователей посещением действий блока, в которых записываются мои ежедневные записи.

In [40]: [b.name for b in Block.objects.all()]
Out[40]: ['Concepts', 'Reading', 'Coding', 'Action']

Iвыполнить такую ​​задачу с проверкой состояния:

def article_detail(request, pk):
    article = get_object_or_404(Article, pk=pk)
    # sections and current_section

    if article.block.name == "Action" and request.user.username not in  administors:
        raise  Http404("You are not authorized to read Section Action,I prefert to communicate on the topic action in persion.")

Тем не менее, решение кажется неформальным.Как я мог сделать это встроенными декораторами Django или чем-то подобным?

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