Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
687 views
in Technique[技术] by (71.8m points)

python - Success_url = "detail/int:pk"

class EditBlog(UpdateView):
    model = Entry
    template_name = 'entry/edit.html'
    success_url = "/"
    fields = ['entry_title', 'entry_text']

    def form_valid(self, form):
        form.instance.entry_author = self.request.user
        return super().form_valid(form)

i want to put in my success URL the name of the path because the URL of my detail page has a PK with it and it's not working the way i want


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

UpdateView has a method for getting the url to redirect to after the form is successfully saved, which defaults to the success_url attribute.

You could have something like:

from django.urls import reverse
class EditBlog(UpdateView):
    #Your other lines of code
    ...
    def get_success_url(self):
        return reverse("your url name", args=[self.object.pk])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...