0

Je crée une application Django pour plusieurs universités. Voici les classes de modèles que j'ai utilisées.Afficher uniquement certains objets dans la liste de modification d'un modèle dans django

class Institute(models.Model): 
    name=models.CharField(max_length=200) 
    def __str__(self): 
     return self.name 

class Applicant(models.Model): 
    name = models.CharField(max_length=200) 
    institute=models.ForeignKey(Institute,on_delete=models.CASCADE) 
    def __str__(self): 
     return self.name 

J'ai créé un utilisateur du personnel pour chaque institut, mais la liste des modifications des candidats montre également les candidats qui ne sont pas du même institut. Je souhaite modifier la liste de changement de page d'administration afin qu'elle ne liste que les candidats qui appartiennent à cet institut particulier. Actuellement, ma liste de changement de page de candidat ressemble à ceci pour chaque institut dont je dois enlever quelques candidats.

liste des modifications actuelle

Current change list

Répondre

0

Il semble que vous devez soutenir la multi-location. En d'autres termes, certains utilisateurs de type "admin" appartiendront à un institut, et à ce titre, lorsqu'ils se connecteront, ils ne verront que les candidats de leur institut. Malheureusement, cela peut être un problème difficile à résoudre. Si vous utilisez postgres comme base de données, Django Tenant Schemas est plutôt cool. Cependant, au moins dans mon expérience, je n'ai pas pu avoir un utilisateur qui pourrait voir TOUS les objets (pas sûr si vous en avez besoin ou non).

Si cela ne vous convient pas, il y a bien sûr d'autres paquets qui tentent de résoudre le problème de différentes manières, une recherche google devrait les mettre en place.

Si aucun de ces packages ne correspond à vos besoins, vous pouvez potentiellement créer votre propre contrat de multi-location en utilisant les Django Sites framework et les utilisateurs personnalisés.