在 form.save() Django ModelForm 上调用特定字段

Calling specific field on 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'),

当我 运行 此代码时,我不断收到视频模型没有属性 slug 的错误。该属性位于事件模型下。如何从表单中提取事件并使用相应的 slug?

Whelp,我一发布这个我就明白了。只需将 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})