小编Ser*_*nko的帖子

如何根据django admin中的另一个选项字段限制选择字段选项

我有以下型号:

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是唯一的选择?

javascript python django django-admin

12
推荐指数
2
解决办法
6101
查看次数

Django-在rss feed中指定通道图像的方式

什么是在rss feed中指定频道图像的"django-way"?我可以通过滚动我自己的xml手动完成它,但是正在寻找一种正确的方法.

编辑 dobrych的解决方案在这里不太适用,因为我特地询问了RSS而不是Atom提要

python django rss

10
推荐指数
2
解决办法
3828
查看次数

如何在django中运行普通的sql查询时获取字段名称

在我的一个django视图中,我使用普通的sql(不是orm)查询数据库并返回结果.

sql = "select * from foo_bar"
cursor = connection.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

我得到的数据很好,但不是列名.如何获取返回的结果集的字段名称?

python django

10
推荐指数
3
解决办法
1万
查看次数

用python碾压json

现在回应我的另一个问题需要找到一种方法来将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的快速反应!

python parsing json

9
推荐指数
1
解决办法
1万
查看次数

如何在nagios电子邮件中发送额外信息

我已经设置了一个nagios监控并配置了check_http插件来检查我的应用程序中的特定URL.该url返回'ok'或错误消息.

我的nagios在发现不正常的东西时给我发了一封电子邮件.但是我得到的只是"HTTP CRITICAL - 找不到字符串".我想在电子邮件中获得的是从我的URL返回的实际错误消息.我尝试过使用verbose(-v)选项.在命令行中,它返回一个包含我的错误消息的完整请求,但是nagios email只会向我发送详细响应的第一行.

我希望在nagios通知中得到的是找不到字符串来获取实际的错误消息.有没有办法使用check_http(或可能是其他一些)插件或我必须自己编写?

编辑: 到目前为止,我一直在我的电子邮件通知中使用$ SERVICEOUTPUT $.

monitoring web-applications nagios

8
推荐指数
1
解决办法
7297
查看次数

Google Data API身份验证

我试图让我的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请求.

python django gdata-api google-api gdata

6
推荐指数
1
解决办法
3119
查看次数

在shell脚本中将脚本目录更改为用户的homedir

在我的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)

它可以工作,但如果它在用户变量中,那么它不会.我在这里错过了什么?

linux bash shell

5
推荐指数
2
解决办法
2万
查看次数

用python捣碎xml

我需要删除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的解决方案都适合我,并且完全符合我的要求.希望我能接受这两个答案.

python xml

5
推荐指数
3
解决办法
1475
查看次数

getpwnam中是否存在内存泄漏的修复或解决方法?

getpwnam中是否存在内存泄漏的修复或解决方法?

c++ linux

1
推荐指数
1
解决办法
1331
查看次数

运行django作为fastcgi时的stdout

我已经将我的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会去哪里?

apache django fastcgi

1
推荐指数
1
解决办法
1136
查看次数