【发布时间】:2013-08-08 12:02:30
【问题描述】:
views.py
def save_report(request):
form = ReporterRegisterForm()
profileform = ProfilecontactForm()
user = request.user
userprofile = UserProfile.objects.get(user=user)
if request.method == 'POST':
id = request.POST.get('id')
user = User.objects.get(pk=id)
userprofile = UserProfile.objects.get(user=user.id)
form = ReporterRegisterForm(request.POST, instance=user)
profileform = ProfilecontactForm(request.POST,instance = userprofile)
if form.is_valid() and profileform.is_valid():
form.save()
profilesave = profileform.save(commit=False)
profilesave.save()
return render(request, 'setting/edit_reporter.html',
{'form': form,
'userprofile':userprofile
})
urls.py
urlpatterns = patterns(
'setting.views',
(r'^$', 'index'),
(r'^save-reporter/$', 'save_reporter'),)
js:
$('.reporter').click(function () {
alert(1)
var id = $(this).attr('id');
var csrf_token = $("#csrf_token").val();
$.ajax({
data:{
csrfmiddlewaretoken: ('{{csrf_token}}'),
// form:form.serialize(),
id:id,
},
type:'POST',
url: '/setting/save-reporter/',
success: function() {
$('#authorisedreporter').show();
}
});
});
html:
<button type="button" id="{{ list.0.id }}" class="openDiv">{{list.0.name}} </button>
{{ list.0.id }} list中的id是用户表中的id
这是我的views.py来更新表单数据。我想实例化表单数据,需要在更新模式下显示该字段。它没有被实例化。我从POST获得正确的ID。需要帮助
【问题讨论】:
-
我不确定你想要完成什么,但你没有返回 ProfileContactForm 对象,所以它没有被正确渲染?
-
@MikkoP,这是一个编辑问题,Rohan 的答案是显示登录用户的实例。但我想显示从 ajax 帖子获取的用户实例。我从 ajax 帖子中获取了正确的 ID,但是在控制台中,如果我在 html 中看到它,我收到的表单错误消息为“此字段是必需的”,而不是显示该字段为空的实例。你能帮我解决这个问题吗
-
你能从 urls.py 分享这个视图的代码吗?
-
@MikkoP urls.py 共享
-
由于您没有在 url 中包含您计划编辑的用户 ID,您打算如何访问它?我会把它改成这样: urls.py url(r'^(?P
\d+)/$', myapp.views.save_report, name='save_report'), views.py def save_report(request , pk): ... 现在可以简单地引用 pk (在这种情况下,它是从 ajax 调用传递的用户 id。你能否也显示 ajax 调用。现在我不知道你是如何传递的视图上的用户 ID 信息。
标签: python django django-models django-forms django-templates