2010-11-27 2 views
2

이 :장고 : post_save 신호와 요청 객체 내 모델 클래스의 다음

class DashboardVersion(models.Model): 
    name = models.CharField(_("Dashboard name"),max_length=100) 
    description = models.TextField(_("Description/Comment"),null=True,blank=True) 
    modifier = models.ForeignKey(User,editable=False,related_name="%(app_label)s_%(class)s_modifier_related") 
    modified = models.DateField(editable=False) 

class Goal(models.Model): 
    goal = models.TextField(_("Goal")) 
    display_order = models.IntegerField(default=99999) 
    dashboard_version = models.ForeignKey(DashboardVersion) 

목표 도달을 편집 할 때, 삭제, 등, 내가 수정 한 사용자에 DashboardVersion.modifier을 변경하려면 추가 된 현재 날짜로 DashboardVersion.modifed.

신호를 사용하여 구현하려고합니다. post_save 신호에는 request이 포함되어 있지 않습니다. 아니면 어딘가에서 얻을 수 있습니까? 아니면 직접 신호를 만들어야합니까?

아니면 완전히 다른 것을해야합니까?

감사합니다. :-) Eric

답변

1

나는 가장 간단한 방법은 을 Goal 업데이트를 처리하는보기에서 업데이트하는 것이라고 말하고 싶습니다. Goal 업데이트를 처리하는 동일한 모듈에 여러 개의보기가있는 경우 DashboardVersion 업데이트 논리를 개별 기능으로 분류 할 수 있습니다.

신호를 사용하지 못하게되면 스레드 로컬 미들웨어와 함께 뭔가를 해킹 할 수는 있지만 가장 간단한 방법이 가장 좋습니다.

+0

Goal 모델의 save 메서드를 재정 의하여이 업데이트를 수행해야하는 위치가 5 개 있다고 생각합니다. 그래서 신호를 사용하고 싶었습니다. 그러나, 나는 save 메소드를 재정의하는 것이 효과가 있다고 생각한다. 당신이 준 옵션에 감사드립니다! :) –