问题: 我有一个数据库有3个外键,每天我都必须按照以下规则收集用户输入;Django1.5 - python2.7 - 如何显示和更新具有3个外键的数据库
如果在db中已经有数据存在,那么检索并显示数据。数据将导致多行,但每行基于3个外键(产品,分支,merge_version)和date_created(auto_add = True)进行唯一查询
如果查询没有返回任何内容,则创建一个具有类实例的对象并显示空行
如果用户单击一个提交按钮,则应使用以下规则在数据库中更新数据;
- 对于提交的每一行,验证是否有已经存在于数据库中的现有行,如果有一个排,更新该行,否则创建一个新的行
我试过在for循环中为每个产品创建多个表单实例,并将字典发送到模板页面,并且显示行没有任何问题。
当我点击提交,只有最后一行数据被保存,因为request.POST返回以下输出;
QueryDict: {u'build_date': [u'2013-10-11', u'2013-10-11', u'2013-10-11', u'2013-10-11', u'2013-10-11', u'2013-10-11', u'2013-10-11', u'
2013-10-11'], u'cln': [u'5555', u'2222', u'2222', u'2222', u'2222', u'2222', u'2222', u'090909'], u'logs': [u'no logs', u'no logs', u'no logs', u'no logs', u'no logs', u'n
o logs', u'no logs', u'no logs'], u'rpmt_status': [u'R', u'R', u'R', u'R', u'R', u'R', u'R', u'R'], u'rpmt_result': [u'F', u'F', u'F', u'F', u'F', u'F', u'F', u'F'], u'com
ments': [u'hghjg', u'hghjg', u'hghjg', u'hghjg', u'hghjg', u'hghjg', u'hghjg', u'hghjg'], u'cbs_other_bugs': [u'666', u'666', u'666', u'666', u'666', u'666', u'666', u'666
'], u'build_num': [u'12345', u'4444', u'8888', u'8888', u'8888', u'8888', u'8888', u'080808'], u'cbs_merge_blocker': [u'76767', u'76767', u'76767', u'76767', u'76767', u'7
6767', u'76767', u'76767'], u'csrfmiddlewaretoken': [u'8sNCLiUu23tvqLe1QHdJp1c5sQJmhevw'], u'cbs_waived': [u'89898', u'89898', u'89898', u'89898', u'89898', u'89898', u'89
898', u'89898']}
如果我有个人的每一行提交按钮,我得到下面的request.POST
QueryDict: {u'build_date': [u'2013-10-11'], u'cln': [u'23423'], u'logs': [u'no logs'], u'rpmt_status': [u'R'], u'rpmt_result': [u'F'], u'comments': [u'hghjg'], u'cbs_other_bugs': [u'666'], u'build_num': [u'12345'], u'cbs_merge_blocker': [u'76767'], u'csrfmiddlewaretoken': [u'8sNCLiUu23tvqLe1QHdJp1c5sQJmhevw'], u'cbs_waived': [u'89898']}
,但我想保存一个提交按钮的整个数据库。 请告诉我我犯了什么错误? 还是有最好的方式来处理这种情况,而不是使用ModelForm?
是否有任何Django专家来回答我的问题? – Sakthi
仍然没有人提供有关此设计问题的帮助? – Sakthi