Hi
i have encountered very strange problem. have two user . One is superuser of name "root" and another is general user of name "dgp". I have model of Name Profile with 21 fields around.
I want to show all field of Model Profile in "root" login.
I want to exclude 4 field of Model Profile in "dgp" login.
I get correct output If i do login in this sequence root - dgp
I get wrong output If i do login in this sequence dgp - root
( Means I get 4 field excluded in root Login also. )
Means once i do login using "dgp" user , i always get all 4 fields excluded in subsequent login for any user unless and until i restart the server.
I have a model of name Profile and I want to exclude four fields for user of name "dgp" .
Fields are
 username = request.user.username
  if username == "dgp":
    self.exclude = ('UserNext','UserNextDate','UserNextDepartment','CaseStatus', )
I have superuser as root.
1. When I run the code and do the login using root user login
I get all Fields of Profile Model.
2 I do logout and Login Using "dgp" user. I get all Fields of Profile Model except
the four fields.   'UserNext','UserNextDate','UserNextDepartment','CaseStatus', )
Here My code Execute successfully.
But when I change the sequence of Login, Code shows the
all Fields of Profile Model except
the four fields in both login "dgp" as well as "root".
I have overridden Models Two methods. Necessary Model and admin code is shown below.
Please help n this regards.
  Â
models.py
-------------------------------
class Profile(models.Model):
  RCS1 = "Regular_Civil_Suit"
  SCS1 = "Special_Civil_Suit"
  RCA1 = "Regular Civil Appeal"
  MCA1 = "Miscellaneous Civil Appeal"
  CMA1 = "Civil Miscellaneous Application"
  LAR1 = "Land Acquisation Reference"
  SED1 = "Special Execution Darkhast"
  # AC1 = "Arbitration Case"
  SuitType_Choice = [
      (RCS1, 'Regular Civil Suit'),
      (SCS1, 'Special Civil Suit'),
      (RCA1, 'Regular Civil Appeal'),
      (MCA1,'Miscellaneous Civil Appeal'),
      (CMA1,'Civil Miscellaneous Application'),
      (LAR1,'Land Acquisation Reference'),
      (SED1,'Special Execution Darkhast'),
      # (AC1,’Arbitration Case’),
   ]
  State = models.CharField(max_length=100,default="MH")
  District = models.CharField(max_length=100,default="Parbhani")
 Â
  user = models.ForeignKey(User, on_delete=models.CASCADE,default="--")
  InwardNumber = models.CharField(max_length=100,default="2019/3")
  CaseNoticeDate = models.DateField(default="2019-01-24")
  CaseNoticeSubject = models.CharField(max_length=100,default="Inquiry in Department")
  CaseReceiverName = models.CharField(max_length=100,default="Ramakant Lal")
  CaseInwardDate = models.DateField(default="2019-02-24")
  CaseActionTaken=models.CharField(max_length=200,default="Verification is going on")
Â
  CourtType =models.CharField(max_length=200,default="District Court Parbhani")
  SuitType= models.CharField(max_length=200,choices=SuitType_Choice,
    default="Regular Civil Suit",verbose_name='--Suit Type-')
   # decision_taken = models.CharField(max_length=50, choices=court_action,
   #  default="Appeared",verbose_name='Court Decision-')
Â
  CaseYear = models.PositiveIntegerField(default=2019)
  CaseNumber = models.PositiveIntegerField(default=1)
  CaseSubmittedDate = models.DateField(default="2019-01-14")
  # Current_Date= models.DateField(default=timezone.now)
  CaseSubject=models.CharField(max_length=200,default="Corruption and Dowry")
Â
  CaseAdvocate=models.CharField(max_length=200,default="Reguar Civil Suit")
  CasePartyNames=models.CharField(max_length=200,default="Manish Singh")
  CaseOppositePartyNames=models.CharField(max_length=200,default="Raj Kumar ")
  CaseLastDate = models.DateField(default="2019-05-24")
Â
  UserCurrent =  models.CharField(max_length=200,default="user1")
  UserCurrentDate = models.DateField(default="2019-03-24")
  UserCurrentDepartment =  models.CharField(max_length=200,default="IT")
 Â
  UserNext =  models.CharField(max_length=200,default="user2")
  UserNextDate = models.DateField(default="2019-06-24")
  UserNextDepartment =  models.CharField(max_length=200,default="CS")
 Â
  CaseStatus= models.CharField(max_length=100,default="Pending")
  # CaseNumber = models.PositiveIntegerField(default=1)
  # CaseYear = models.PositiveIntegerField(default=2019)
 Â
  class Meta:
    unique_together = (('CaseNumber', 'CaseYear'),)
Â
 Â
  def __str__(self):
    return '%s/%s' % (self.CaseNumber, self.CaseYear)
-----------------------------------------------------------------------
admin.py
+++++++++++++++++++++++++++++++++++++++++++
 def add_view(self, request, extra_context=None):
  username = request.user.username
 Â
  print("----- Inside ADD VIEW Method--------")
  print (username)
  self._request = request    Â
  if username == "dgp":
   print("----- Inside ADD VIEW DGP Condition--------") Â
   self.exclude = ('UserNext','UserNextDate','UserNextDepartment','CaseStatus', )  Â
  else:
     print("----- Inside ADD VIEW  ***NON DGP*** Condition--------") Â
  # return super().add_view(request, extra_context)
  return super().changeform_view(request, extra_context)
 Â
 def change_view(self, request, object_id,  extra_context=None):
    # extra_context = extra_context or {}
    # extra_context['osm_data'] = self.get_osm_info()
  username = request.user.username
 Â
  print("Inside CHANGE VIEW Method--------")
  print (username)
  if username == "dgp":
    self.exclude = ('UserNext','UserNextDate','UserNextDepartment','CaseStatus', )
    print("----- Inside CHANGE VIEW  IN  DGP User Condition--------") Â
  else:
    print("----- Inside CHANGE VIEW **** other THAN DG**P User Condition--------") Â
 Â
    # self.include = ('UserNext','UserNextDate','UserNextDepartment','CaseStatus', )  Â
  Â
  return super().change_view(
      request, object_id, extra_context=extra_context,
  )
--
Mr. Shetty Balaji S.
Asst. Professor
Department of Information Technology,
SGGS Institute of Engineering & Technology, Vishnupuri, Nanded.MH.India