2017-02-21 64 views
0

我有一個表格,用戶可以添加視頻到一個事件。當他們提出,我希望他們被重定向到活動頁面,但我有麻煩搞清楚代碼必要的。調用上form.save特定領域()的Django的ModelForm

這裏是我的代碼:

views.py:

def add_video(request): 
    if request.method == "POST": 
     form = AddVideo(request.POST) 
     if form.is_valid(): 
      event = form.save() 
      return redirect('event_detail', slug=event.slug) 
    else: 
     form = AddVideo() 
    return render(request, 'add_video.html', {'form': form}) 

models.py:

class Video(models.Model): 
    event = models.ForeignKey(Event, on_delete=models.CASCADE) 
    url = models.CharField(max_length=255) 

urls.py:

url(r'^climbs/(?P<slug>[-\w]+)/$', views.event_detail, name='event_detail'), 

當我運行這段代碼,我不斷收到一個錯誤,韋迪o模型沒有屬性slug。該屬性在事件模型下找到。如何從拉的形式事件並使用相應的鼻涕蟲?

回答

1

雛,只要我發佈這個我想通了。剛剛必須將views.py更改爲以下內容:

def add_video(request): 
    if request.method == "POST": 
     form = AddVideo(request.POST) 
     if form.is_valid(): 
      video = form.save() 
      return redirect('event_detail', slug=video.event.slug) 
    else: 
     form = AddVideo() 
    return render(request, 'add_video.html', {'form': form})