2016-07-02 4 views
0

내가 너무 특정 User1에 의해 Comment 년대의 양을 제한해야 할 사람이 Post을 만들 때 나는 지금 너무사용자가

class Comment(models.Model): 
    commentDescription = models.CharField(max_length=60) 
    commentOwner = models.ForeignKey(User1,null=True) 
    post = models.ForeignKey(Post, null=True) 

class Post(models.Model): 
    postDescription = models.CharField(max_length=200) 
    postOwner = models.ForeignKey(User1,null=True) 

class User1(models.Model): 
    user = models.OneToOneField(User) 

    def __unicode__(self): 
     return self.user.username 

같은 장고 모델을 말해봐 코멘트를 할 수 있습니다 시간의 양을 제한 PostComment을 많이 가지고 's을 (를) 만 세 Comment 수'의 나는 사용자가 이미 SP에했다 얼마나 많은 의견 확인 방법의 어떤 종류를 만들 생각하고있는 Post

User1 당들 수있다 ecific post하지만 외래 키의 복잡성으로 어디에서 시작해야할지 모르겠다.

답변

0

편집 : 아, 질문을 놓치 셨습니다. 절대 투표 수와는 달리 투표 시간을 제한하고 싶다고 생각했습니다.

모델을 Comment 모델에 추가 한 다음 views.py에 새 댓글을 작성할 수 있는지 확인합니다. (또는 CommentForm이있는 경우 사용자 정의 is_valid으로 확인하십시오.

의사 코드와 유사하게 주석이 다시 허용되는지 확인하는 것과 같습니다.

if (comment_date < timezone.now() - datetime.timedelta(minutes=min_comment_time)): 
    // allow comment 
0

주어진 게시물에 댓글을 달려고하는 사용자의 경우 다음 방법을 호출 할 수 있습니다. userpost은 각각 User1Post 모델의 인스턴스 여야합니다.

def allow_comment(user, post): 
    user_comments = post.comment_set.filter(
     commentOwner=user, 
    ) 
    current_count = user_comments.count() 
    if current_count < 3: 
     return True 
    else: 
     return False 

이 메서드는 사용자가 주석을 추가 할 뷰에서 호출해야합니다. 대신 post에 해당 숫자의 user을 반환하고 사용하려면 current_count을 반환하면됩니다.