【发布时间】:2013-07-26 20:02:02
【问题描述】:
views.py
def index(request):
""""""""""""""
registerform = UserRegisterForm(request.POST)
createprofileform = UserCreateProfileForm(request.POST)
if registerform.is_valid() and createprofileform.is_valid():
result = registerform.save(commit=False)
result.set_password(request.POST['password']) #set member password
result.username = username
result.save()
member.user_id = user.id
member.member_id = result.id
member.save() #new member registration
member_profile = UserProfile.objects.get(user=result.id)
createprofileform = UserCreateProfileForm(request.POST, instance=member_profile)
createprofileform.save() #create member profile
createprofileform = UserCreateProfileForm()
member_save_msg = 'New member has been added.'
""""""""""""
return render(request,'index.html',{ 'registerform': registerform,'createprofile': createprofileform,})
index.html
{% block main-content %}
<table width="98%" border="0" style="margin-left:0.7%;" cellpadding="0" cellspacing="0" id="rounded_table">
<tr >
<td width="50%">Main Account Holder</td><td width="50%">Authorised Reporters</td>
</tr>
<tr id="main_account">
<td width="50%">All data related to main account holder comes here</td>
</tr>
<tr id="authorised_reporter">
<td width="100%" colspan="2">
<div id="authorisedreporter" {% if not registerform.errors %}style="display:none"{% endif %}>
<form method="post" action="." id="reporter-form">{% csrf_token %}
<table width="100%">
<tr>
<td style="width:100px;">First name:</td><td>{{registerform.first_name}}</td>
</tr>
<tr>
<td>Last name:</td><td>{{registerform.last_name}} </td>
</tr>
""""""other form fields""""""""
<tr>
<td colspan=2""><p align="right"><button type="submit" title="Save" >Save <img src="{{ STATIC_URL }}images/button-icon-ir-fwd.png" width="12" height="17" alt="" /></button></p>
</td>
</tr>
</table></form>
</table>
{%endblock%}
上面的views.py和index.html是用来保存新用户入口的。
我的 html 模板分为 2 部分,主账户持有人选项卡和授权报告人选项卡。主账户持有人选项卡用于保存个人资料信息,授权报告人选项卡用于创建新用户。在页面加载时,主账户持有人选项卡将处于活动状态和用户选项卡将被隐藏。如果选择用户选项卡,主帐户持有人选项卡将被隐藏。一旦用户被保存,用户详细信息将显示在下方,格式如下。
{% for list in member_list %}
<tr class="ir-shade">
<td style="width:120px;"><span><input type="submit" name="delete" value="{{list.0.id}}" class="delete_reporter" /></span><button> id="{{ list.0.id }}" class="openDiv">{{list.0.first_name|title}} {{list.0.last_name}}</button></td>
<td style="width:410px;"> {{list.0.email}} {{list.1.phone_daytime}} {{list.1.phone_mobile}}</td>
</tr>
{% endfor %}
我真正想要的是 Onclicking <button> id="{{ list.0.id }}" class="openDiv">{{list.0.first_name|title}} {{list.0.last_name}}</button> 保存的用户数据应以可编辑模式显示在同一字段中。我在按钮中传递用户 ID。单击按钮时,与用户 ID 相关的数据应以可编辑模式显示.
js:
$('.openDiv').click(function () {
var id = $(this).attr('id');
var csrf_token = $("#csrf_token").val();
$.ajax({
data:{
csrfmiddlewaretoken: ('{{csrf_token}}'),
id:id,
},
type:'POST',
url: '/setting/save-reporter/',
success: function(data) {
$('#authorisedreporter').html(data);
}
});
});
下面的views.py和html是为了显示保存的表单实例而编写的。现在我可以显示保存的表单实例,我正在将实例加载到authorisedreporter div中(请检查js和index.html)。这次如果我保存,它正在创建新记录,它正在调用与索引方法相关的views.py。我想更新而不是保存记录。
save_reporter.html
<form method="post" action="." id="{{ id }}">
{% csrf_token %}
<table width="100%">
<tr>
<td style="width:100px;">First name:</td><td>{{form.first_name}}</td>
</tr>
<tr>
<td>Last name:</td><td>{{form.last_name}}</td>
</tr>
<tr>
<td>Daytime phone:</td><td>{{profile.phone_daytime}}</td>
</tr>
<tr>
<td>Mobile phone:</td><td>{{profile.phone_mobile}}</td>
</tr>
<tr>
<td>Email:</td><td>{{form.email}}</td>
</tr>
<tr>
<td>Password</td><td>{{form.password}}</td>
</tr>
<tr>
<td colspan=2"<p align="right">{% include "buttons/save.html" %}</p></td>
</tr></table></form>
views.py
def save_reporter(request):
user = request.user
id = request.POST.get('id')
user = User.objects.get(pk =id)
userprofile = UserProfile.objects.get(user=user.id)
form = ReporterRegisterForm(instance=user)
profileform = ProfilecontactForm(instance=userprofile)
return render(request, 'setting/save_reporter.html',
{'form': form,
'id':id,
'profile':profileform
})
我已经解释了我目前面临的问题,请帮助我这样做。谢谢
【问题讨论】:
-
点击链接后控制台出现错误?
-
嗯,你在
settings.py中打开了DEBUG = True吗?我可以在您的视图功能中看到一些错误。您能否描述一下点击链接后的预期? -
DEBUG = True in django settings,链接是为用户名放置的。点击链接后,相关数据链接名,姓,电子邮件在编辑模式下以表单打开。链接是使用 django 通过表单保存用户配置文件数据。由于此窗口在 div 中,我尝试使用 ajax post。这是为了在可编辑模式下从表单字段中的数据库获取数据。
-
我更新并解释了我目前面临的问题,谁能帮我解决这个问题。
标签: python django python-2.7 django-models django-forms