2017-09-13 9 views
1

django를 배우십시오. 질문이 하나 있습니다. 피드백 양식을 작성했으며 피드백 양식 확인 후 사용자를 동일한 페이지로 리디렉션해야합니다. 아래는 코드입니다Django get_absolute_url (양식 제출 후 사용자에게 같은 페이지로 돌아 가기)

models.py

class Feedback(models.Model): 
     title = models.CharField(max_length=255) 
     text = models.TextField(max_length=5000) 
     user_name = models.CharField(max_length=255) 
     user_lastname = models.CharField(max_length=255) 
     email = models.EmailField(max_length=255) 
     send_time = models.DateTimeField(auto_now_add=True) 
     update_time = models.DateTimeField(auto_now=True) 

     def get_absolute_url(self): 
      return 

urls.py

url(r'^feedback$',views.FeedbackSendForm.as_view(), name='feedback'), 

views.py

class FeedbackSendForm(CreateView): 
     model = Feedback 
     fields = [ 
      'title', 
      'text', 
      'user_name', 
      'user_lastname', 
      'email', 
      ] 
     template_name = 'feedback.html' 

feedback.html

<form method="post"> 
    {% csrf_token %} 
    {% for field in form %} 
     <span class="text-danger">{{ field.errors }}</span> 
     <div> 
      <label class="control-label">{{ field.label }}</label> 
      {{ field }} 
     </div> 
    {% endfor %} 
    <button type="submit">Submit</button> 
</form> 

아이디어가 있으십니까? 도와주세요.

views.py :이 도움이

class FeedbackSendForm(CreateView): 
     model = Feedback 
     fields = ['title','text','user_name','user_lastname','email',] 
     template_name = 'feedback.html' 
     form_class = form_name 

     def form_valid(self, form): 
      """ 
      If the form is valid, redirect to the supplied URL. 
      """ 
      return HttpResponseRedirect(self.get_success_url()) 
      """ 
      define `get_success_url' to your model or use `get_absolute_url` instead. 

희망 사전에

+0

실행 중에 오류가 발생합니까? 그렇다면 Traceback을 게시 할 수 있습니까? –

+1

코드 들여 쓰기를 수정하십시오. –

+0

오류가 없습니다. 나는 단지 "무엇을"돌려 줄 것인지 모른다. – Aziz

답변

0

당신이 당신의 모델에 대한 get_absolute_url를 오버라이드 (override) 할 경우는, 다음과 같은 코드가 당신을 도울 수 :

from django.urls import reverse 


class Feedback(models.Model): 
    # the model fields 

    def get_absolute_url(self): 
     # reverse expects the view name 
     return reverse('feedback') 

어떤 Feedback 개체에 대한 절대 URL이보기 FeedbackSendForm 될 것입니다. 이는 뷰 이름 feedbackreverse으로 전달하여 지정합니다.

그게 필요한가요?

+0

형님, 고마워요 !! – Aziz