注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

哈欠涟涟的博客

学习python、pyqt与django

 
 
 

日志

 
 

一个Form加一个Formset的例子  

2010-06-03 11:01:34|  分类: django |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
引用于http://djangosnippets.org/snippets/1246/ 
源码:

def person_view(request, person_id=None):

if person_id == None:

person = Person()

else:

person = Person.objects.get(id = person_id)

PhoneFormSet = inlineformset_factory(Person, Phone, can_delete=True)

if request.method == "POST":

personform = PersonForm(request.POST, instance=person)

phoneformset = PhoneFormSet(request.POST, request.FILES, instance=person)

if personform.is_valid() and phoneformset.is_valid():

personform.save()

phoneformset.save()

# Redirect to somewhere

if '_save' in request.POST:

return HttpResponseRedirect('/admin/person/person/')

if '_addanother' in request.POST:

return HttpResponseRedirect('/admin/person/person/add/')

else:

personform = PersonForm(instance=person)

phoneformset = PhoneFormSet(instance=person)

return render_to_response('person.html', {

'personform' : personform, 'phoneformset' : phoneformset, })

模板:

<fieldset class="module aligned ">

{% for field in personform %}

<div class="form-row">

<div class="field-box">

{{ field.errors }}

{{ field.label_tag }}: {{ field }} </div>

</div>

{% endfor %}

</fieldset>

<fieldset class="module aligned ">

<h2>Phone Numbers</h2>

<table>

<tr>

{% for field in phoneformset.forms.0 %}

{% if not field.is_hidden %}

<th>{{ field.label }}</th>

{% endif %}

{% endfor %}

</tr>

{% for f in phoneformset.management_form %}

{{ f }}

{% endfor %}

{% for f in phoneformset.forms %}

<tr>

{% for field in f %}

{% if not field.is_hidden %}

<td>

{{ field.errors }}

{{ field }}

</td>

{% else %}

<td valign="bottom">{{ field }}</

{% endif %}

{% endfor %}

</tr>

{% endfor %}

</table>

</fieldset>

  评论这张
 
阅读(1776)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017