1. 새 메모를 만드느냐 기존 메모를 수정하느냐 확인<

 
Jung Kyoung Up

1. 새 메모를 만드느냐 기존 메모를 수정하느냐 확인

 

[Models.py]

 

Class Memo(models.Model):

   ….

   def save(self, *args, **kwargs):

      if self.id: # id값 생성 여부로 확인

          print u'깔끔한 새 메모'

      else:

         print u'니가 범인임을 알고 있다'

      super(Memo, self).save(*args, **kwargs) # Call the "real" save() method.

 

[views.py]

 

알어서 적당히 대충…

 

 

2. 내 메모를 누가 지웠는지 확인하고 싶을 때

 

[Models.py]

 

Class Memo(models.Model):

   …

   request_user = None # 빈 공간을 하나 만들어둔다.

   def delete(self, *args, **kwargs):

      if self.request_user and self.request_user.if_staff:

         print u'관리자가 메모를 지워먹었구나!!'

      super(Memo, self).delete(*args, **kwargs) # Call the "real" delete() method.

 

[views.py]

 

def memo_delete(request, memo_id)

   memo = Memo.objects.get(id=memo_id)

   memo.request_user = request.user

   memo.delete()

 

이런 꼼수를 쓰고 있습니다. 혹시 정공법은 없는지, 아시는분 안계시나요.

 

ps1. 이거 탭이 안먹어서 띄어쓰기 편집 다시 했네요 =_=;;

 

ps2. request_user를 만들어서 쓰는건 forms.py 에서도 요긴하게 써먹고 있습니다. clean 메소드 만들때 은근히 비교할일 있더라고요.

Advertisements