Python中文
首页
教程
问答
标签
搜索
登录
注册
使用setattr()更新对象实例
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个model类,它有一个引用django DB对象的属性。我想用一个带有setattr()的视图来更改这个属性,我用它来更改这个对象的任何属性。在</p> <p>问题是,我似乎无法通过堆栈传递对象实例。我不确定是否可以使用setattr()来完成此操作。实际上,我甚至不确定问题是我尝试使用setattr()还是其他什么-请告诉我!在</p> <p>POST尝试时出错:</p> <pre><code>ValueError at /dollhouseupdate/1 Cannot assign "u'Citadel'": "Dollhouse.dh_background" must be a "Background" instance. </code></pre> <p>型号:</p> ^{pr2}$ <p>模板:</p> <pre><code> <select id="background-select"> <option value="null">Change Background</option> {% for background in background_objects %} <option value="{{ background }}">{{ background.bg_name }} </option> {% endfor %} </select> </code></pre> <p>视图:</p> <pre><code>def dollhouseupdate(request, dollhouseid): if request.method == 'POST': workingdollhouse = Dollhouse.objects.get(id=dollhouseid) if request.POST.get('erase') == "true": workingdollhouse.delete() return HttpResponse("Dollhouse deleted!") else: data = (request.POST).dict() for key, value in data.items(): setattr(workingdollhouse, key, value) workingdollhouse.save() return HttpResponse("Dollhouse {} saved!".format(workingdollhouse.dollhouse_name)) </code></pre> <p>Javascript代码:</p> <pre><code>//change dollhouse background $("#background-select").change(function() { if($("#background-select").val() != null) { var dollhouseid = workingDollhouse; var dh_background = $("#background-select").val() console.log("changing background to " + dh_background); $.ajax("http://127.0.0.1:8000/dollhouseupdate/"+dollhouseid, { type: 'POST', data: { dh_background: dh_background, } }) .done(function(response){ console.log("The request is complete!"); console.log(response); window.location = "http://127.0.0.1:8000/"; }) .fail(function() { console.log("Sorry, there was a problem!"); }) }; }); </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您传递的是<code>POST</code>变量中的对象id,而不是实际对象本身(无论如何都不能这样做)。或者更改以下部分</p> <pre><code>data: { dh_background: dh_background, } </code></pre> <p>到</p> ^{pr2}$ <p>或者使用视图代码中的id获取对象实例。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
6 回答
文本小部件:在没有输入时更新并在循环后保持空闲
8 回答
文本小部件tkin
3 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
7 回答
文本小部件tkinter复制图像选项
6 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
9 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
10 回答
文本小部件不显示lis中的内容
3 回答
文本小部件不显示Unicode字符
7 回答
文本小部件中写入的行间距
4 回答
文本小部件中的文本作为变量
1 回答
文本小部件中的滚动条仅显示在底部
6 回答
文本小部件中的选项卡键空间计数
1 回答
文本小部件作为Lis
5 回答
文本小部件在主框架中扩展列宽
10 回答
文本小部件未使用删除功能清除
10 回答
文本小部件滚动动画(Tkinter、Python)
5 回答
文本居中。格式正确吗?
5 回答
文本差分算法
8 回答
文本已知时音频文件中的单词索引
8 回答