Django get_absolute_url(将表单提交后返回到同一页面)

问题描述:

学习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> 

任何想法?请帮忙。 预先感谢您

+0

运行时出现错误?如果是,可以发布Traceback? –

+1

请修复您的代码缩进。 –

+0

没有错误。我只是不知道该“回归” – Aziz

如果你想覆盖get_absolute_url您的机型,下面的代码可以帮助你:

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。这通过将视图名称feedback传递到reverse来指定。

这就是你需要的吗?

+0

谢谢兄弟! – Aziz

例CreateView的:

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. 

希望这有助于。

更多信息:https://ccbv.co.uk/projects/Django/1.5/django.views.generic.edit/CreateView/