2014-06-15 2 views
0

내 응용 : 저는 django에서 작은 블로그 응용 프로그램을 만들었습니다. 각 블로그에는 다음과 같은 특성이 있습니다. 1) 제목 2) 본문 3) 이미지 4) upvote/downvote 버튼 5) 비율 6) 덧글django app에서 현재 활동 추적 및 표시

로그인 한 사용자는 특정 블로그를 upvote 또는 downvote 수 1-5 사이의 숫자를 제공하거나 의견 그 블로그에.

내 질문 : 지금은 내가 다른 웹 페이지에 표시 할 사용자가 blog.Say에서 수행하는 활동/recent_actions

처럼을 표시 할 사용자 X (말) upvotes 경우 블로그 (말) 페이지/recent_actions가 업데이트되어야합니다. 페이지의 가장 최근 내용은 "user x upvoted blog y 2 분 전"과 같아야합니다. 즉, 내 블로그 앱에 대한 뉴스 피드를 만들고 싶습니다.

내 생각

: 나는 특정 분야에서의 변경 사항을 추적 (예를 들어 블로그 모델에서 좋아하는) 유지 활동 클래스를 만들 생각입니다

여기에 누구나 내가 바로 생각 또는이다하고 있는지 자세히 어떤 explaination이 그것들을하는 다른 좋은 방법.

답변

0

나는 당신이 옳은 길에 있다고 생각합니다.

내 프로젝트에서 나는 Event 클래스를 추상화했으며이 클래스를 기반으로하는 몇 가지 다른 클래스를 작성했습니다.

그것은이 같은 :

class Event(models.Model): 
    is_cancelled = models.BooleanField(default=False) 
    created = models.DateTimeField(blank=True, null=True) 

    class Meta: 
     abstract = True 

class ScanEvent(Event): 
    # fields/methods related to scan actions only 


class ReadEvent(Event): 
    # fields/methods related to read actions only 

class ... 

이벤트 클래스는 추상적이기 때문에, 어떤 테이블이 DB에서 생성되지 않습니다,하지만 난 is_cancelled 여러 번 속성을 쓰지 않기 때문에 내가 장고에 DRY있어. 그것은 나를 위해 매력처럼 작동합니다.

나는 Aamir Adnan이 제안한 django-activity-stream에 관해 몰랐다. Il은 잘 보일 수 있습니다. 어쩌면 그것은 당신이 필요로하는 것, 아마도 당신이 필요로하는 것일 수도 있습니다 :