我有一个名为的数据库对象manor_stats,有大约30个字段.对于大多数行,这些字段中的大多数将为null.
在我的模板中,我想循环遍历行中的所有字段,并仅打印非空字段的信息.
例如,有一个名为"name"的字段:我只想<li>Name: {{ manor_stats.name }}</li>在模板中打印那些字段不为null的对象.理想情况下,我也想自动从某个地方提取"名字:",而不是指定它.
我知道我可以{% if manor_stats.name %}用来检查每个字段是否为空,但我不想为所有字段做30次.
这是我在views.py中的内容:
manor_stats = Manors.objects.get(idx=id)
return render_to_response('place.html', { 'place' : place, 'manor_stats' : manor_stats }, context_instance = RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
然后在place.html中,我希望有一些大致类似的东西(伪代码,用???表示我不知道怎么做的位):
{% if manor_stats %}
<ul>
{% for manor_stats.property??? in manor_stats %}
{% if manor_stats.property %}
<li>{{ manor_stats.property.field_name??? }} {{ manor_stats.property.value??? }}</li>
{% endif %}
{% endfor %
{% endif %}
Run Code Online (Sandbox Code Playgroud)
希望有道理......
使用jQuery的getJSON时如何处理500错误?
有关JSONP getJSON() 和 JSONP的错误处理有几个问题,但我不使用JSONP,只是普通的JSON.
另一个答案建议.ajaxSetup()在致电之前使用getJSON(),所以我尝试了这个:
$.ajaxSetup({
"error":function() {
alert('Error!');
}});
$.getJSON('/book_results/', function(data) { # etc
Run Code Online (Sandbox Code Playgroud)
但我发现警报总是会触发,即使结果是格式良好的.
有任何想法吗?
我基本上喜欢和这个问题一样,但是通过两个值的组合进行分组,而不仅仅是一个:
SELECT player_type, team, COUNT(*) FROM players GROUP BY player_type, team;
Run Code Online (Sandbox Code Playgroud)
有没有人知道在Django中这是否可行以及如何实现?我正在使用1.2.
我有一个Excel电子表格,我正在阅读其中包含一些£符号.
当我尝试使用xlrd模块读取它时,我收到以下错误:
x = table.cell_value(row, col)
x = x.decode("ISO-8859-1")
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
如果我将其重写为x.encode('utf-8'),它会停止抛出错误,但不幸的是,当我将数据写入其他地方时(如latin-1),£符号都变得乱码.
我该如何解决这个问题,并正确阅读英镑符号?
---更新---
某些读者建议我根本不需要解码它,或者我可以在需要时将其编码为Latin-1.这个问题是我最终需要将数据写入CSV文件,它似乎反对原始字符串.
如果我根本不对数据进行编码或解码,则会发生这种情况(在我将字符串添加到名为items的数组之后):
for item in items:
#item = [x.encode('latin-1') for x in item]
cleancsv.writerow(item)
File "clean_up_barnet.py", line 104, in <module>
cleancsv.writerow(item)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2022' in position 43: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
即使我取消注释Latin-1行,我也会得到相同的错误.
我正在使用实时服务器.我已经更新了提示并且它引起了问题:我需要恢复到特定的变更集(388),其中一切正常.
我没有更改服务器上的任何值,本地变更集根本没有关系.事实上,我实际上想要杀死任何本地意外更改或合并,以免混淆事情.
如何恢复特定变更集并终止任何本地更改?是否与之相关:
hg revert
Run Code Online (Sandbox Code Playgroud)
----更新---
为了澄清,我想要做的是首先在本地恢复所有变更集388,然后确保我的本地仓库处于这样的状态,当我这样做时
hg status
Run Code Online (Sandbox Code Playgroud)
我没有输出.否则我有一种令人讨厌的感觉,当我接下来提示时,会有冲突要处理 - 我想避免,因为局部变化没有价值.
----更新---
对于这种情况下的其他任何人来说,最终为我修复的是:
rm -rf <repo_dir>
hg clone http://repository
hg update -r 388
Run Code Online (Sandbox Code Playgroud)
这会杀死你所有的局部变化,所以谨慎行事(但这就是我在这种情况下想要的).
我有一个自定义模板标签:
def uploads_for_user(user):
uploads = Uploads.objects.filter(uploaded_by=user, problem_upload=False)
num_uploads = uploads.count()
return num_uploads
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情,所以我可以正确地复数:
{% with uploads_for_user leader as upload_count %}
{{ upload_count }} upload{{ upload_count|pluralize }}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)
但是,uploads_for_user leader在此上下文中不起作用,因为'with'标记需要单个值 - Django返回:
TemplateSyntaxError at /upload/
u'with' expected format is 'value as name'
Run Code Online (Sandbox Code Playgroud)
知道如何绕过这个吗?
在Python中查找另一个字符串中的字符串的优雅方法是什么,但仅当子字符串在整个单词内,而不是单词的一部分时?
也许一个例子将证明我的意思:
string1 = "ADDLESHAW GODDARD"
string2 = "ADDLESHAW GODDARD LLP"
assert string_found(string1, string2) # this is True
string1 = "ADVANCE"
string2 = "ADVANCED BUSINESS EQUIPMENT LTD"
assert not string_found(string1, string2) # this should be False
Run Code Online (Sandbox Code Playgroud)
我怎样才能最好地编写一个名为string_found的函数来完成我需要的工作呢?我想也许我可以用这样的东西来捏造它:
def string_found(string1, string2):
if string2.find(string1 + " "):
return True
return False
Run Code Online (Sandbox Code Playgroud)
但这并不是很优雅,如果它在string2的末尾也不会匹配string1.也许我需要正则表达式?(argh regex fear)
我有一些Android代码,需要从GPS,网络或任何可用的地方快速获得最佳可用位置.准确性不如速度重要.
获得最佳可用位置肯定是一项非常标准的任务.然而,我找不到任何代码来证明它.Android位置代码要求您指定条件,注册更新和等待 - 如果您有详细的标准并且不介意等待,这很好.
但我的应用程序需要更多地工作,就像地图应用程序第一次找到你时 - 从任何可用的提供程序工作,只需检查位置是不是过时或过时.
我试图推出自己的代码来做到这一点,但我遇到了问题.(它在IntentService内部发生上传,如果这有任何区别.我已经包含了所有信息代码.)这段代码出了什么问题?
@Override
protected void onHandleIntent(Intent arg0) {
testProviders();
doUpload();
}
private boolean doUpload() {
int j = 0;
// check if we have accurate location data yet - wait up to 30 seconds
while (j < 30) {
if ((latString == "") || (lonString == "")) {
Log.d(LOG_TAG, "latlng null");
Thread.sleep(1000);
j++;
} else {
Log.d(LOG_TAG, "found lat " + latString + " and lon " + lonString);
break;
}
//do the upload …Run Code Online (Sandbox Code Playgroud) 任何人都知道一种优雅的方式将汤对象的全部内容作为单个字符串?
在我得到的那一刻contents,这当然是一个列表,然后迭代它:
notices = soup.find("div", {"class" : "middlecontent"})
con = ""
for content in notices.contents:
con += str(content)
print con
Run Code Online (Sandbox Code Playgroud)
谢谢!
我想{% include page.html %}在我的Django模板中使用一个标签,并构造page.html动态的值.
在Django有没有办法做到这一点?
这是一个伪代码示例:
{% include page_{{mode}}.html %}
Run Code Online (Sandbox Code Playgroud)
谢谢!