栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django基于添加表单编辑表单?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django基于添加表单编辑表单?

如果要从ModelForm扩展表单,请使用instance关键字参数。在这里,我们传递的是现有的instance还是新的,取决于我们是在编辑还是添加现有的文章。在这两种情况下,author都在实例上设置了字段,因此commit=False不是必需的。还要注意,我假设只有作者可以编辑自己的文章,因此是HttpResponseForbidden响应。

from django.http import HttpResponseForbidden
from django.shortcuts import get_object_or_404, redirect, render, reverse

@login_required
def edit(request, id=None, template_name=’article_edit_template.html’):
if id:
article = get_object_or_404(Article, pk=id)
if article.author != request.user:
return HttpResponseForbidden()
else:
article = Article(author=request.user)

form = ArticleForm(request.POST or None, instance=article)if request.POST and form.is_valid():    form.save()    # Save was successful, so redirect to another page    redirect_url = reverse(article_save_success)    return redirect(redirect_url)return render(request, template_name, {    'form': form})

并在您的urls.py:

(r’^article/new/$’, views.edit, {}, ‘article_new’),
(r’^article/edit/(?Pd+)/$’, views.edit, {}, ‘article_edit’),
edit添加和编辑使用相同的视图,但是只有编辑URL模式将ID传递给视图。为了使它与您的表单一起使用,您需要author从表单中省略该字段:

class ArticleForm(forms.ModelForm):
class meta:
model = Article
exclude = (‘author’,)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号