2015-01-09 7 views
0

У меня есть UpdateView, который я переопределяю методом form_valid. По какой-либо причине «запрос» показан как не определенный в переопределенном методе. Вот полный класс:global name 'request' не определен: overriding form_valid

class UpdateTopic(UpdateView): 
     model = Post 
     slug_field = 'pk' 
     slug_url_kwarg = 'pk' 
     form_class = CommentForm 
     template_name = "forums/update_topic.html" 

     def form_valid(self, form): 
      user = self.request.user 
      rep = self.request.user.player.get_rep_total 

      # protect the system against url input attacks 
      if user == self.object.user or rep >=2500: 
       self.object = form.save(commit=False) 
       self.object.updated_by = self.request.user 
       self.object.save() 
       messages.add_message(request, message.SUCCESS, "<strong>Success:</strong> The comment was edited successfully!") 
      else: 
       messages.add_message(request, message.ERROR, "<strong>Failed:</strong> You don't have the access level to edit that post!") 

Проблема заключается в линии messages.add_message(request, message.SUCCESS, "<strong>Success:</strong> The comment was edited successfully!") Похоже, что request выходит за рамки как некоторые. Почему он это делает? Есть ли способ обойти это?

+4

Это должно быть 'self.request', а не' request'. –

+0

@limelights, возможно, вы могли бы опубликовать это как ответ? – icedtrees

ответ

1

Это должно быть self.request, а не request.

messages.add_message(self.request, message.ERROR, "...") 
+0

Я пробовал это раньше. Теперь я получаю сообщение об ошибке: глобальное имя «сообщение» не определено. – ApathyBear

+0

Да, перечисление, используемое 'message.ERROR', не определено, поэтому вы, вероятно, забыли его импортировать. –

+0

Я импортировал сообщения: из сообщений импорта django.contrib. Мне нужно также импортировать сообщение? Я думал, что это всего лишь часть метода 'add_message' – ApathyBear

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