2

저는 우분투 13.04, 파이썬 2.7, 장고 1.5, 포스트 그레스 9.2, 부트 스트랩 3.0에서 장고를 배우고 있습니다. 나는 django-authentication을 사용하여 Polls 응용 프로그램과 튜토리얼 예제를 결합하고 싶습니다.Django 통합 자습서 예제 앱 및 장고 등록 설문 조사

첫 번째 노력으로 나는 Django 1.5 tutorial에서 일하는 설문 조사 응용 프로그램을 얻었습니다. 그런 다음 django-registration 1.0these templates을 설치하여 작동되게했습니다. 그 패키지는 의 결과로 django-allauth이 아니라 인증을 위해 선택되었습니다.

이제 Polls와 django-registration을 통합하여 사용자별로 결과 집합을 기록하고 싶습니다. 설문 결과가 수집 된 후 admininstrator는 Django Admin 인터페이스를 사용하여 결과를 분석 (예 : 통계 계산)하고 모든 사용자의 하위 집합으로 전자 메일을 보내는 스크립트를 실행합니다.

내가 쓴 것처럼 보이는 두 개의 기존 프로젝트를 간단히 살펴 보았습니다.

  1. Light Bird's Questionnaire App은 모듈 식 클래스 기반보기의 사용자 지정 라이브러리를 사용하면 너무 복잡합니다. 유지 보수와 초기 디자인을 쉽게하기 위해 가능한 한 Django 1.5 기능을 가능한 많이 사용하여 가능한 한 간단하게 유지하고 싶습니다.

  2. 비록 멋진 생각이지만, 2011 년 어두운 시대에는 Django 1.4 및 Bootstrap 2.x 만 지원하는 최신 코드가 붙어있는 것 같습니다. 초보자 용 프로젝트는 그다지 유용하지 않으며 문서도 플래시가 아닙니다.

위에서 설문 조사와 등록의 통합을 수동으로 수행해야하는 것처럼 보입니다. 처음에 나는 대략 다음과 같이 생각했다.

    설문 조사는 질문에 대한 단순한 숫자 대답으로 단순화 될 수있다.
  • 데이터베이스 수준에서는 별도의 테이블이 필요합니다.
  • 기본 키는 사용자 ID입니다.
  • 각 열에는 하나의 답변이 저장됩니다.
  • model.py이 있어야하는데 기본 키 정의는 User으로 django 등록을 통해 이루어져야합니다.
  • 정확하게 어떻게하는지, 그리고 다음에 나오는 것은 나에게 조금 흐릿해진다.

위의 내용은 장고 개발자를위한 간단한 연습입니다. 아무도 나에게 약간의 시작 힌트를 주거나 비슷한 것을하는 기존의 프로젝트를 더 잘 줄 수 있습니까?

답변

0

당신은 장고와 같은 프레임 워크를 사용하는 힘을 약간 과소 평가하는 것처럼 보입니다. 예를 들어 django의 ORM (Object Relational Mapper)이 많은 작업을 처리하기 때문에 데이터베이스의 테이블이나 기본 키가 무엇인지 걱정할 필요가 없습니다.

당신이 장고에 두 가지 모델 (데이터베이스 테이블)을 연결하려는 경우이 같은 foreignkey 사용할 수 있습니다 다음 ThingOne 모델이 이미 가지고 있기 때문에 주위

class ThingOne(models.Model): 
    name = models.CharField(max_length=50) 

class ThingTwo(models.Model): 
    thing_one = models.ForeignKey('ThingOne') 

따옴표 'ThingOne'내 외래 키에서 실제로 필요하지 않습니다 정의되었지만 따옴표를 사용하는 것이 좋습니다. 어쨌든 ForeignKeys는 아래에 (코드에서) 모델에 연결되어있는 모델에서도 작동합니다.

따라서 설문 조사와 사용자 모델간에 관계를 추가하기 만하면됩니다. 한 사용자가 많은 설문 조사 결과를 얻는다면 ForeignKey 대신 ManyToManyField을 사용해야하지만 원칙은 동일합니다. 그게 너를 시작하게하는데 충분할거야.

+0

고마워요, Garry,하지만 네, 제 단계에서 설명한대로 이것을 할 수 있음을 깨달았습니다. 이 모든 것을 아교로 붙이는 방법에 대해 더 자세히 설명해 드리겠습니다. – alex