我有以下型号:
class Category(models.Model):
name = models.CharField(max_length=40)
class Item(models.Model):
name = models.CharField(max_length=40)
category = models.ForeignKey(Category)
class Demo(models.Model):
name = models.CharField(max_length=40)
category = models.ForeignKey(Category)
item = models.ForeignKey(Item)
Run Code Online (Sandbox Code Playgroud)
在管理界面中创建新演示时,在用户从下拉列表中选择类别后,我想限制"项目"下拉列表中的选项数量.如果用户选择另一个类别,则项目选项应相应更新.我想在客户端上限制项目选择,甚至在服务器上进行表单验证之前.这是为了可用性,因为项目列表可以是1000+,能够按类别缩小它将有助于使其更易于管理.
是否有"django-way"这样做或自定义JavaScript是唯一的选择?
什么是在rss feed中指定频道图像的"django-way"?我可以通过滚动我自己的xml手动完成它,但是正在寻找一种正确的方法.
编辑 dobrych的解决方案在这里不太适用,因为我特地询问了RSS而不是Atom提要
在我的一个django视图中,我使用普通的sql(不是orm)查询数据库并返回结果.
sql = "select * from foo_bar"
cursor = connection.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)
我得到的数据很好,但不是列名.如何获取返回的结果集的字段名称?
现在回应我的另一个问题需要找到一种方法来将json压缩到一行:例如
{"node0":{
"node1":{
"attr0":"foo",
"attr1":"foo bar",
"attr2":"value with long spaces"
}
}}
Run Code Online (Sandbox Code Playgroud)
我想紧缩到一条线:
{"node0":{"node1":{"attr0":"foo","attr1":"foo bar","attr2":"value with long spaces"}}}
Run Code Online (Sandbox Code Playgroud)
通过删除无关紧要的空格并保留值内的空格.有没有一个库在python中执行此操作?
编辑 感谢drdaeman和Eli Courtwright的快速反应!
我已经设置了一个nagios监控并配置了check_http插件来检查我的应用程序中的特定URL.该url返回'ok'或错误消息.
我的nagios在发现不正常的东西时给我发了一封电子邮件.但是我得到的只是"HTTP CRITICAL - 找不到字符串".我想在电子邮件中获得的是从我的URL返回的实际错误消息.我尝试过使用verbose(-v)选项.在命令行中,它返回一个包含我的错误消息的完整请求,但是nagios email只会向我发送详细响应的第一行.
我希望在nagios通知中得到的是找不到字符串来获取实际的错误消息.有没有办法使用check_http(或可能是其他一些)插件或我必须自己编写?
编辑: 到目前为止,我一直在我的电子邮件通知中使用$ SERVICEOUTPUT $.
我试图让我的Django应用程序(不使用谷歌应用程序引擎)使用谷歌联系人数据API从谷歌联系人检索数据.通过身份验证文档以及Data API Python客户端文档
获得一次性令牌的第一步(AuthSubRequest)工作正常.下一步(AuthSubSessionToken),它是将一次性令牌升级为会话令牌.python API调用UpgradeToSessionToken()根本不适合我,它给了我NonAuthSubToken异常:
gd_client = gdata.contacts.service.ContactsService()
gd_client.auth_token = authsub_token
gd_client.UpgradeToSessionToken()
Run Code Online (Sandbox Code Playgroud)
作为替代方案,我希望通过"手动"构建HTTP请求来实现它:
url = 'https://www.google.com/accounts/AuthSubSessionToken'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'AuthSub token=' + authsub_token,
'User-Agent': 'Python/2.6.1',
'Host': 'https://www.google.com',
'Accept': 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2',
'Connection': 'keep-alive',
}
req = urllib2.Request(url, None, headers)
response = urllib2.urlopen(req)
Run Code Online (Sandbox Code Playgroud)
这给了我一个不同的错误:
HTTP错误302:HTTP服务器返回重定向错误,导致无限循环.最后30x错误消息是:暂时移动
我在这做错了什么?我非常感谢我尝试使用的方法之一的帮助/建议/建议:Python API调用(UpgradeToSessionToken)或使用urllib2手动构建HTTP请求.
在我的bash脚本中,我需要将当前目录更改为用户的主目录.
如果我想更改为用户的foo home目录,我可以从命令行执行:
cd ~foo
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但是当我从脚本中做同样的事情时它会告诉我:
./bar.sh: line 4: cd: ~foo: No such file or directory
Run Code Online (Sandbox Code Playgroud)
像这样的接缝会是如此微不足道的事情,但它不起作用.这有什么问题?我是否需要逃避"〜"或可能缺少引号或其他内容?
编辑
当我说用户时,我不是指当前运行脚本的用户,而是通常系统上的任何其他用户
编辑
这是脚本:
#!/bin/bash
user="foo"
cd ~$user
Run Code Online (Sandbox Code Playgroud)
如果用户名是硬编码的
cd ~foo
Run Code Online (Sandbox Code Playgroud)
它可以工作,但如果它在用户变量中,那么它不会.我在这里错过了什么?
我需要删除xml标记之间的空格,例如,如果原始xml看起来像:
<node1>
<node2>
<node3>foo</node3>
</node2>
</node1>
Run Code Online (Sandbox Code Playgroud)
我希望将最终结果压缩成单行:
<node1><node2><node3>foo</node3></node2></node1>
Run Code Online (Sandbox Code Playgroud)
请注意,我无法控制xml结构,因此解决方案应该足够通用,以便能够处理任何有效的xml.此外,xml可能包含CDATA块,我需要将其从此运算中排除并保持原样.
到目前为止,我有几个想法:(1)将xml解析为文本并查找标记的开始和结束<和>(2)另一种方法是加载xml文档并逐个节点地打印出一个新的通过连接标签来记录文档.
我认为任何一种方法都可行,但我宁愿不在这里重新发明轮子,所以可能有一个python库已经做了这样的事情?如果没有,那么在推出我自己的计算器时需要注意的任何问题/陷阱?有什么建议?
编辑 谢谢大家的回答/建议,Triptych和Van Gale的解决方案都适合我,并且完全符合我的要求.希望我能接受这两个答案.
我已经将我的Django应用程序配置为在Linux上运行Apache + FastCGI(Ubuntu,如果重要的话).我的问题是:当运行Django作为fastcgi时,如何将stdout重定向到文件.
编辑 澄清:我熟悉django-logging模块,是的,我已经使用它了.这不是我的问题所在.
说当我从控制台运行Django时
python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
我得到了控制台中显示的所有请求,错误等,这是stdout.但是,当我在apache下运行fastcgi时,stdout会去哪里?
python ×6
django ×5
linux ×2
apache ×1
bash ×1
c++ ×1
django-admin ×1
fastcgi ×1
gdata ×1
gdata-api ×1
google-api ×1
javascript ×1
json ×1
monitoring ×1
nagios ×1
parsing ×1
rss ×1
shell ×1
xml ×1