2009-12-01 5 views
0

iPhone 응용 프로그램 용 Django에 간단한 webapp가 있습니다. 사용자에게 Google 제품을 검토하라는 메시지를 표시하려고합니다. 나는 다시 그 프롬프트를 보여주고 싶지 않다.장고 사용자 프로필 모델에 대한 플래그 설정 및 사용

이렇게하면 부울 필드가있는 사용자 프로필 모델에 새 항목을 추가하는 것이 가장 좋습니다. "리뷰 됨"- 사용자가 작업을 완료하면 해당 플래그를 설정할 수 있습니까?

그런 다음 템플릿의 해당 항목을 확인한 다음 프롬프트를 표시할지 여부를 결정합니다.

아직 데이터베이스 모델로 작업하지 않았거나 사용자 모델을 확장하거나 사용자 정의 DB 필드에 저장하지 않았으므로 이에 대한 생각이나 예가 가장 환영받을 것입니다. 내 사이트가 라이브 사용자를 보유하고있어 사용자 테이블을 손상시키고 싶지 않기 때문에 좀 긴장됩니다.

답변

1

당신은 MySQL의 또는 PostgreSQL을를 사용하는 경우, 당신은 어떤 데이터를 잃지 않고 어떤 ALTER TABLE을 할 수 있습니다.

장고에서는 사용자 프로필을 쉽게 추가 할 수 있습니다. 존재하지 않는 경우 프로파일을 생성, 확인 :

try: 
    profile = request.user.get_profile() 
except UserProfile.DoesNotExist: 
    # If DoesNotExists, Create an empty one 
    profile = UserProfile(user=request.user) 
    profile.save() 
여기

더 많은 정보 :

+0

감사합니다 Natim - 프로필을 가지고 있습니다. (재사용 가능한 app-django-basic-profiles를 사용하고 있습니다.)이 Boolean 필드를 여기에 추가해야한다면, 다른 곳에서는 _right_ 할 일이 있다면 혼란 스럽습니다. –

+0

하나만있는 경우 여기에 부울을 추가합니다. 앞으로 다른 플래그가 필요할 경우 가장 좋은 방법은 이름과 ManyToManyField (User)로 모델'Flag '를 만드는 것입니다. 플래그와 사용자 사이에 링크가 있으면 True이고 그렇지 않으면 False입니다. – Natim

+0

이 방법을 사용하면 syncdb를 수행 할 때 해당 플래그가 시스템의 현재 사용자에게 적용됩니다. 그렇지 않으면 django-evolution과 같은 것을 사용해야합니다. –

0

이렇게하는 방법에는 여러 가지가 있습니다. 다음을 제안합니다 :

장고에는 소프트웨어가 메시지를 만들 때 사용자에게 한 번만 메시지를 표시하도록 설계된 메시징 프레임 워크가 있습니다. X가 생성/수정/삭제 될 때마다 User.message_set.create (message = 'What what you like')를 통해 사용자에게 메시지를 추가 할 수 있습니다. 이 메시지는 사용자에게 한 번 표시됩니다. 이것은 django 세션에 의존하는데, 내장 된 사용자 모델에 의존하기 때문에 사용하고 있다고 가정합니다. 이 메시지는 auth_message에 저장됩니다.

HTH

+0

하지만 어떻게 난 단지이 메시지를 설정합니다 한 번, 그리고 그 깃발을 어디에 저장할 것인가? –

+2

나는 auth_message가이 목적을위한 것이라고 생각하지 않는다. – Natim

관련 문제