2014-05-13 1 views
0

우리가보기 ItemAdmin 및 양식 ItemAdminForm을 가지고 있다고 가정 해 봅시다. 이 관리자 페이지에서 항목을 다운로드 할 수있게되었을 때 등록한 모든 사용자에게 버튼을 클릭하여 알려줄 수 있습니다. 다음과 같이 내가 이것에 대한 모델을 가지고 :Django 폼에서 POST 데이터를 재정의하는 올바른 방법은 무엇입니까?

class PreregisteredUser(models.Model): 
    item = models.ForeignKey(Item, related_name='preregistered_users') 
    user = models.ForeignKey(User, related_name='preregistrations') 
    date_registered = models.DateTimeField(auto_now_add=True) 
    notified = models.BooleanField(default=False) 

    class Meta: 
     unique_together = 'item', 'user' 

에 제출, 나는 논리 같은 것을되고 싶어 다음

notify_users 클릭 한 경우
  1. , 아직되지 않은 모든 사전 등록 사용자를 찾을 수 통지.
  2. 이 사용자를 신고합니다.
  3. 이러한 사용자를 알림으로 업데이트하십시오.

따라서 양식의 저장 방법에서 (1) 및 (2)를 수행합니다. (3) 나는 다음을 사용합니다 :

PreregisteredUser.objects.filter(item=item).update(notified=True) 

문제는 페이지가 다시로드 될 때 모든 사용자가 여전히 알림을받지 않은 것으로 표시된다는 것입니다. 따라서 이것이 효과가 나타나지 않거나 효과가 있는지는 모르겠지만 상자가 수동으로 확인되지 않았기 때문에 업데이트로 변경하려는 내용을 덮어 쓰게됩니다.

문제는 양식의 입력을 무시하여 업데이트가 적용되도록하려면 어떻게해야합니까? 이것은 메서드를 저장하는 옆의 다른 곳입니까? 이 경우 post_save을 사용해야합니까? 어떤 생각이 도움이 될 것입니다.

답변

0

난 최선의 방법은 pre_save()을 사용하고 여기에 논리를 추가하는 것입니다. 이렇게하면 페이지가로드 될 때 조작 한 데이터가로드됩니다.

관련 문제