How to override default Django Admin Panel Model display to Customization

59 views
Skip to first unread message

Balaji Shetty

unread,
Apr 15, 2019, 9:25:49 AM4/15/19
to django...@googlegroups.com
Hi

When i do login using Django Admin Panel , i can easily perform CRUD operation on Models.

can i customize the display of Models Records in django Admin Panel Itself, when I select the model, I get all the records, But i want to filter the records based on some Criteria.

Here is my model . Code executes.



class EmployeeManager(models.Manager):
        def get_queryset(self):
            return super(EmployeeManager, self).get_queryset().filter(gender='F')





class Employee(models.Model):
      gender_choices = (
           ("M", "Male"),
           ("F", "Female")
      )
      roles_choices = (
           ("J", "Junior"),
           ("S", "Senior"),
      )
      first_name = models.CharField(max_length=200)
      last_name = models.CharField(max_length=200)
      email = models.CharField(max_length=250)
      gender = models.CharField(max_length=1, choices=gender_choices)
      role = models.CharField(max_length=120, choices=roles_choices, default="J")
      active = models.BooleanField(default=True)

      # custom manager replaces objects manger
      all_employees = models.Manager()
      objects = models.Manager() # The default manager.
      active_objects = EmployeeManager() # The EmployeeManager manager.

      def __str__(self):
            return str(self.first_name) + str(self.last_name)

From Shell, it executes.
          
    # Employee.active_objects.all()
    # Employee.active_objects.filter(email='empl...@gmail.com')
    # Employee.active_objects.count()


When

My Query is can i show the filtered record in directly Django Admin Panel after doing Login based on Logged User Username.


--
Mr. Shetty Balaji S.
Asst. Professor
Department of Information Technology,
SGGS Institute of Engineering & Technology, Vishnupuri, Nanded.MH.India
  Mobile: +91-9270696267

Derek

unread,
Apr 17, 2019, 2:43:46 AM4/17/19
to Django users
Proxy models, with an associated Manager, are one way to achieve this - assuming your criteria are fixed.
Reply all
Reply to author
Forward
0 new messages