Django Admin User Permission в объекте базы данных - PullRequest
0 голосов
/ 10 октября 2019

У меня есть модели, которые выглядят так:

class Article(models.Model):
    # Créé une entrée titre dans la table Article de max 100 caractères
    titre = models.CharField(max_length=100)
    # créé une entrée auteur dans la table Article de 50 caractères max
    auteur = models.CharField(max_length=50)
    # créé une entrée contenu dans la table Article sans limite de caractères
    contenu = models.TextField(null=True)
    # céé une entrée date dans la database en date type field
    date = models.DateField(default=timezone.now, verbose_name="Date de parution")
    # créé une entrée image dans la table Article à l'aide du path stocké dans un varchar
    # L'image est stocké dans la string définie par upload_to.
    image = models.ImageField(upload_to='image/article', null=True)
    # céé une entrée preview_text dans la database
    preview_text = models.CharField(max_length=500, null=True)
    # créé une entrée slug dans la table Article. Le slug sert à définir l'url de l'article
    # Il est rempli automatiquement en fonction du titre grâce au prepopulated-field dans admin.py
    slug = models.SlugField(max_length=100)
    # Ajout de la clef étrangère catégorie à la table Article. models.PROTECT empèche la supression de la catégorie
    # si utilisé par un article
    categorie = models.ForeignKey('Categorie', on_delete=models.PROTECT)
    # Ajout de la clef étrangère Flag à la table Article. models.PROTECT empèche la suppression du Flag si
    # utilisé par un article.
    flag = models.ForeignKey('Flag', on_delete=models.PROTECT)
    # compteur de vues
    nb_vue = models.IntegerField(default=0, verbose_name="Nombre de Vues")

    # Permet de personnaliser le comportement du modèle -- Classe Optionnelle
    class Meta:
        # donne un nom au singulier à l'objet
        verbose_name = 'article'
        # défini le tri par défaut des objets lors de l'obtention de la liste
        ordering = ['date']

    def __str__(self):
        """
        Cette méthode permet de reconnaitre facilement les différents objets
        :return: self.titre
        """
        return self.titre

class Categorie(models.Model):
    nom = models.CharField(max_length=30)

    # créé une entrée nom dans la table Categorie de 30 caractères maximum
    def __str__(self):
        return self.nom


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

Мне нравится: где категория = 'новости'

спасибо большое!

Редактировать:Я пытался с пользовательской формой, но я не понимаю, как я могу сказать: if request.user.is_staff дать доступ к 'category1' только на некоторых опциях ....

...