2012-05-24 3 views
1

는 내가 신호가 - 멋진django 및 get_model?

@receiver(post_save, sender=User) 
def create_initial_story(sender,instance, signal, created, **kwargs): 
    if created: 
     Story(user = instance, title = 'Random Stories', 
      description="Random stories", 
      is_closed = False, is_random = True).save() 

및 모든,하지만 난 정말 내 models.py

가 도착 "이중 수입"어떻게 든, 나는이 신호를하고 싶지 않아 차라리 그렇게되지는 않을 것입니다. 예, 신호가 두 번 실행되는 것을 막는 마술 트릭에 대해 알고 있지만, 나는 그것을 믿지 않습니다. 왜 내 애플 리케이션이 두 번 일을합니까! 미친!

누군가 제가 django.db.models.get_model을 사용하라고 제안했지만 어떻게 해야할지 모르겠습니다! 내 시도는 꽤 일했다 - 여기 내가 뭘하려 : - "랜덤 스토리> < 스토리": "Story.user" "사용자해야

가 할당 할 수 없습니다이 예외를 산출

from django.db.models import get_model 

@receiver(post_save, sendermodel('myapp','User')) 
def create_initial_story(sender,instance, signal, created, **kwargs): 
    if created: 
     get_model('myapp','Story').(user = instance, title = 'Random Stories', 
      description="Random stories", 
      is_closed = False, is_random = True).save() 

"인스턴스.

그래서! 이 문제를 해결하려면 어떻게해야합니까?

답변

3

당신의 문제는 여기에 있습니다 :

get_model('myapp','Story').(user = instance, title = 'Random Stories', 
     description="Random stories", 
     is_closed = False, is_random = True).save() 

get_model는 모델 클래스를 반환, 그래서 당신은 여전히 ​​실제로 인스턴스를 생성 objects.create이 필요합니다. 그리고 마지막에 save()이 필요하지 않습니다. 시도해보십시오 :

get_model('myapp','Story').objects.create(user = instance, title = 'Random Stories', 
     description="Random stories", 
     is_closed = False, is_random = True) 
+0

안녕하세요, get_model에 대한 django 문서의 아이디어는 무엇입니까? 그들의 웹 사이트와 구글에서 내 검색 결과 나다! – bharal