我有一个表单,用户可以在其中添加视频到活动。当他们提交时,我希望将它们重定向到事件页面,但是我无法确定必要的代码。
这是我的代码:
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?
答案 0 :(得分:1)
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})