2014-01-28 2 views
1

Я использую мастер из не только для создания, но и для редактирования модели (как описано здесь: Django Form Wizard to Edit Model). Это отлично работает, но теперь мне нужно проверить, разрешено ли пользователю запроса редактировать. В моей модели у меня есть поле, поэтому только владелец должен иметь возможность редактировать:Python Django: используйте мастер форм для редактирования модели и проверьте, разрешено ли пользователю пользователя редактировать

class Document(models.Model): 
... 
    owner = models.ForeignKey(User, editable=False) 
... 

Есть ли у вас какие-либо идеи, как это сделать? Благодаря!

ответ

1

Вы можете добавить следующий код в get_form_initial метод вашего мастера:

from django.core import exceptions 

class DocumentWizard(SessionWizardView): 
    # ... 

    def get_form_initial(self, step): 
     # ... determine document_id 
     document = Document.objects.get(id=document_id) 
     if self.request.user == document.owner: 
      document_dict = model_to_dict(document) 
      return document_dict 
     else: 
      raise exceptions.PermissionDenied 

 Смежные вопросы

  • Нет связанных вопросов^_^