2010-02-14 2 views
1

이것은 장고 프로젝트의 스키마 디자인과 관련하여 상당히 빠른 질문입니다.장고의 월별 보고서 - 월간 고유성 시행?

기본적으로 여러 부서의 일련의 월간 보고서가 하나의 보고서로 집계되어 예쁜 차트로 표시됩니다 (Google 시각화 API를 사용하려고하지만 다른 제안이있을 수 있습니다. 장고와 잘 어울리는 것을 생각한다면).

각 부서는 보고서의 각 부분에 대해 자체 수치를 제출해야합니다. 우리는 아마도 장고 관리자를 사용하여 그 수치를 입력 할 것입니다. 왜냐하면 그것은 꽤 될 필요가 없기 때문에 매달마다 숫자를 얻는 것입니다.

저는 여기에 추상 보고서 모델을 가지고 더 나은 방법을 가정하고 있습니다. 각 모델마다 별도의 모델이 있고 각 필드가 재정의 된 특정 필드를 상속하고 각 필드에 DateField가 있어야합니다.

부모 개체로 한 달 동안 보고서를 내림차순으로 보내는 것은 바보 같은 방법입니다. 맞습니까?

또한 그림을 한 번만 제출할 수 있도록 강제로 적용하는 가장 좋은 방법은 무엇입니까? 나는 별도의 월 및 연도 필드를 가질 수 있었지만 해당 필드에 고유 한 것을 적용하고 구현했습니다. 그러나 inbuilt DateField를 사용하기를 원했지만 월 및 월의 고유성을 적용하는 가장 좋은 방법은 무엇입니까? 새 모델 유효성 검사 기능을 사용해야합니까?

건배, 빅터

답변

1

장고 모델 필드는 옵션 unique_for_monthunique_for_year을 가질 수 있습니다. 해당 옵션의 값은 모델의 DateTime 또는 Date 필드입니다.

예.

class Report(models.Model): 
    submit_date = models.DateField() 
    department_id = models.IntegerField(unqiue_for_month=date) 
+0

이것은 완전히 잘못된 것 같습니다. 적어도 sqlite3 백엔드를 사용하면, 'unique_for_month'는 그저 다음과 같은 것을 의미합니다 : 고유 한 월. 에서 것과 같이, 2 명의 Decembers 및 admin 위치는 당신의 다른 년에 관계없이, 당신을 침을 뱉는다. – Jjed

+0

문서에서 : "* 예를 들어, 필드 제목이'unique_for_date ="pub_date "'인 경우 Django는 'title'과 'pub_date'가 같은 두 레코드의 입력을 허용하지 않습니다. Django admin-form 수준에서는 적용되지만 데이터베이스 수준에서는 적용되지 않습니다. * "문서마다 예상대로 작동해야합니까? –