2010-06-24 2 views
0

플랫폼에 업로드 된 각 코스의 순위를 계산하는 순위 신청을하고 싶습니다.django는 테이블에 증분 값을 저장합니까?

다운로드 횟수 및 뷰 수와 같은 값을 테이블에 저장하는 것이 좋은 방법입니까? 또한

class Courserate(models.Model): 
    course = models.ForeignKey(Courses) 
    downloads = models.IntegerField(editable = False, default = 0) 
    views = models.IntegerField(editable = False, default = 0) 
    positive_votes = models.IntegerField(editable = False, default = 0) 
    negative_votes = models.IntegerField(editable = False, default = 0) 

, 내가 특정 교실에 속하는 코스, 예를 들어, 다운로드 횟수를 취할려고 할 때 나는 어떻게해야합니까? 내 말은 다음과 같은 검색어입니다.

courses = Courses.objects.filter(classroom = userclass) 
downloads = Courserate.objects.filter(course = courses).downloads 

다운로드 쿼리가 작동하지 않습니다. 어떻게하면 각 코스의 다운로드 수를 얻을 수 있습니까?

답변

2

숫자를 저장하는 것이 좋다고 생각합니다. 더 일치가있는 경우

downloads = Courserate.objects.get(course = course).downloads 

하나의 개체가 쿼리와 일치하는 경우는, 작업을해야는 것입니다 : 쿼리가 하나의 개체를 반환하기 위해 당신이 get을 사용할 필요하지 filter (필터는 항상 검색어 세트를 반환) 예외를 던져라!

courses = Courserate.objects.filter(course__in = courses) 
: 둘 이상의 과정을 얻고 Courses 사용 __in의 목록은 CourseRate 개체를 필터링하려면

courses = Courserate.objects.filter(course = course) 
for course in courses: 
    print course.downloads # do something with downloads here 

을 : 당신이 filter를 사용하는 경우는 downloads에 액세스 할 수 반환의 검색어를 반복해야

+0

맞습니다! Bernhard에게 감사드립니다! – dana