我正在尝试使用基于类的UpdateView更新Django User模型,该模型会自动呈现给当前用户,但是我遇到了需要pk或slug的错误.表单工作并使用适当的当前用户上下文呈现,但在我尝试提交更改时会抛出错误.以下是我使用的视图:
class UserUpdateView(UpdateView):
form_class = UserForm
model = User
template_name = 'members/user_update.html'
def get(self, request, **kwargs):
self.object = User.objects.get(username=self.request.user)
form_class = self.get_form_class()
form = self.get_form(form_class)
context = self.get_context_data(object=self.object, form=form)
return self.render_to_response(context)
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()
return HttpResponseRedirect(self.get_success_url())
Run Code Online (Sandbox Code Playgroud) 下面的代码来自React
,动态更新DOM.我使用Facebook的教程做出了反应但却不了解整个代码,即代码的哪一部分执行的时间和方式如何触发代码中的其余部分.请帮助我理解代码.
var TodoList = React.createClass({
render: function() {
var createItem = function(itemText) {
return <li>{itemText}</li>;
};
return <ul>{this.props.items.map(createItem)}</ul>;
}
});
var TodoApp = React.createClass({
getInitialState: function() {
return {items: [], text: ''};
},
onChange: function(e) {
this.setState({text: e.target.value});
},
handleSubmit: function(e) {
e.preventDefault();
var nextItems = this.state.items.concat([this.state.text]);
var nextText = '';
this.setState({items: nextItems, text: nextText});
},
render: function() {
return (
<div>
<h3>TODO</h3>
<TodoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<input onChange={this.onChange} value={this.state.text} />
<button>{'Add #' + (this.state.items.length + 1)}</button> …
Run Code Online (Sandbox Code Playgroud) 我有以下代码片段:
from xml.etree.ElementTree import fromstring,tostring
mathml = fromstring(input)
for elem in mathml.getiterator():
elem.tag = 'm:' + elem.tag
return tostring(mathml)
Run Code Online (Sandbox Code Playgroud)
当我输入以下内容时input
:
<math>
<a> 1 2 3 </a> <b />
<foo>Uitleg</foo>
<!-- <bar> -->
</math>
Run Code Online (Sandbox Code Playgroud)
它导致:
<m:math>
<m:a> 1 2 3 </m:a> <m:b />
<m:foo>Uitleg</m:foo>
</m:math>
Run Code Online (Sandbox Code Playgroud)
怎么会?我该如何保留评论?
编辑:我不关心使用的确切xml库,但是,我应该能够对标记进行粘贴更改.不幸的是,lxml似乎不允许这样(我不能使用正确的命名空间操作)
对于我正在开发的网站,我想使用Django导入大量的RSS源.由于我需要快速的内容,我需要在本地缓存它们(在数据库中或以其他方式)
是否有一个标准的应用程序在Django中进行RSS消费,或者有一种标准的方法在Python中执行此操作?
当然我可以自己实现它,但我宁愿重用一段好的代码(因为需要考虑很多东西,比如项目更新时要做什么,检查更新前等待多长时间等等,以及我宁愿重复使用其他人来思考这个问题.
(我确实谷歌django和rss,但似乎弹出的一切都是饲料生成;肯定有其他网站在那里使用Django和消费RSS?)
我想读出当前为pulseaudio的几个客户播放的音频音量.
我想解决的问题如下:我正在用xmms听音乐,然后我把它暂停,听一个朋友在youtube上发给我的一首歌.一个小时后,我突然发现我没有听任何音乐!
我正在考虑的(非常基本的)解决方案是bash脚本,它只检查除xmms以外的所有应用程序的音量,如果有任何应用程序发出声音,xmms暂停,如果没有声音,xmms是静音, xmms已启用.(我确实希望能够以app的方式执行此操作,例如,应该忽略pidgin)
我只能找到读取音量的图形工具,比如pavucontrol,它可以很好地显示它.我真的不想编写各种C程序来做这么简单的事情,所以:
我有格式良好的xml(开放标签已关闭等),但没有dtd,名称空间并不总是正确的,并且有随机实体.
我在一些xml文件中发现了一个错误,并想自动解决这个问题.基本上,xml文件如下所示:
<foo>
<bar> hi </bar>
<!-- ... -->
<math><sometag><another>bar</another></sometag></math>
<!-- ... -->
</foo>
Run Code Online (Sandbox Code Playgroud)
我想改成这个
<foo>
<bar> hi </bar>
<!-- ... -->
<m:math><m:sometag><m:another>bar</m:another></m:sometag></m:math>
<!-- ... -->
</foo>
Run Code Online (Sandbox Code Playgroud)
我查看了Python elementtree,但根据diveintopython,它不会喜欢它不验证xml的事实?此外,重要的是除了前缀之外不应该更改任何内容m:
.
因为我正在编写一堆shell脚本来修复文件,所以我并不真正关心语言,尽管我目前选择的武器是Python.
澄清:
<math>
和之间的标签的名称</math>
m:
python ×3
django ×2
xml ×2
console ×1
django-forms ×1
elementtree ×1
javascript ×1
linux ×1
perl ×1
pulseaudio ×1
reactjs ×1
rss ×1
ruby ×1