V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
getlost
V2EX  ›  Django

Django

  •  
  •   getlost · 2018-08-09 00:12:32 +08:00 · 2798 次点击
    这是一个创建于 2299 天前的主题,其中的信息可能已经有所发展或是发生改变。

    跟着《 python 编程从入门到实践》练习 Django,遇到如下问题:创建了一个 Topic 表单,有一个 Entry 表单用外键链接到 Topic,在试图函数里定义了修改 Entry 的函数如下: def edit_entry(request, entry_id):

    """修改条目"""
    
    entry = Entry.objects.get(id=entry_id)
    topic = entry.topic
    
    if request.method != 'POST':
        form = EntryForm(instance=entry)
    else:
        form = EntryForm(instance=entry, data=request.POST.get('fields'))
        if form.is_valid():
           	form.save()
            return HttpResponseRedirect(reverse('xs:topic', args=[topic.id]))
    
    context = {'topic': topic, 'form': form, 'entry': entry}
    return render(request, 'xs/edit_entry.html', context)
    

    现在我想修改 Topic,跟着上面的函数定义了下面这个函数:

    def edit_topic(request, topic_id):

    """修改主题"""
    
    topic = Topic.objects.get(id=topic_id)
    
    if request.method != 'POST':
        form = TopicForm(instance=topic)
    else:
        form = TopicForm(instance=topic, data=request.POST.get('fields'))
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('xs:topics'))
    
    context = {'topic': topic, 'form': form}
    return render(request, 'xs/edit_topic.html', context)
    

    这就出问题了,第二个 if 语句(if form.is_valid())似乎没有执行,导致没有跳转至 topics.html 页面

    4 条回复    2018-08-09 11:17:53 +08:00
    helloworld12
        1
    helloworld12  
       2018-08-09 01:17:42 +08:00
    多 print 打印 日志
    georgema1982
        2
    georgema1982  
       2018-08-09 07:54:15 +08:00
    我目测不是没执行,而是 form.is_valid()是 False,所以它又回到了 edit_topic.html
    getlost
        3
    getlost  
    OP
       2018-08-09 11:16:56 +08:00
    @helloworld12 谢谢指教,form.is_valid()是 false
    getlost
        4
    getlost  
    OP
       2018-08-09 11:17:53 +08:00
    @georgema1982 确实是这样,难道不允许修改嘛?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:58 · PVG 17:58 · LAX 01:58 · JFK 04:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.