2014-12-22 3 views
0

Рассмотрите FormView, который я переопределяю ниже. После успешного создания новой записи Лиги, как мне привязать эту запись, чтобы я мог перенаправить пользователя на более общую страницу редактирования, относящуюся к этой Лиге?Как ссылаться на вновь созданный объект с помощью FormView

class LeagueView(FormView): 
    template_name = 'leagueapp/addleague.html' 
    form_class = LeagueForm 

    def form_valid(): 
     newleague = ??? #newly created league 
     success_url = '/league/editleague/' + str(newleague.id) 
     return HttpResponseRedirect(self.get_success_url()) 

ответ

1

это действительно прямо вперед, дано URL в имен как

url(r'^league/editleague/(?P<id>\d+>)$', LeagueView.as_view(), name='edit') 

вы должны отредактировать form_valid метод таким образом:

from django.shortcuts import redirect 

class LeagueView(FormView): 
    template_name = 'leagueapp/addleague.html' 
    form_class = LeagueForm 

    def form_valid(self, form): 
     newleague = form.save() 
     return redirect('league:edit', id=newleague.id) 
Смежные вопросы