【问题标题】:Calling specific field on form.save() Django ModelForm调用 form.save() Django ModelForm 上的特定字段
【发布时间】:2017-07-11 18:45:21
【问题描述】:

我有一个表单,用户可以在其中向活动添加视频。当他们提交时,我希望他们被重定向到活动页面,但我无法找出必要的代码。

这是我的代码:

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'),

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

【问题讨论】:

    标签: python django modelform


    【解决方案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})
    

    【讨论】:

      猜你喜欢
      • 2020-07-24
      • 2010-10-05
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 2020-08-09
      • 2013-10-06
      • 1970-01-01
      相关资源
      最近更新 更多