小编AP2*_*257的帖子

Django模板:循环并打印对象的所有可用属性?

我有一个名为的数据库对象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)

希望有道理......

django django-templates

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

jQuery:处理getJSON()中的错误?

使用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)

但我发现警报总是会触发,即使结果是格式良好的.

有任何想法吗?

error-handling jquery json

23
推荐指数
3
解决办法
4万
查看次数

Django:GROUP BY两个值

我基本上喜欢和这个问题一样,但是通过两个值的组合进行分组,而不仅仅是一个:

SELECT player_type, team, COUNT(*) FROM players GROUP BY player_type, team;
Run Code Online (Sandbox Code Playgroud)

有没有人知道在Django中这是否可行以及如何实现?我正在使用1.2.

django

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

UnicodeEncodeError:'ascii'编解码器无法编码字符u'\ xa3'

我有一个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行,我也会得到相同的错误.

python character-encoding

22
推荐指数
4
解决办法
4万
查看次数

Mercurial:我如何恢复特定版本?

我正在使用实时服务器.我已经更新了提示并且它引起了问题:我需要恢复到特定的变更集(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)

这会杀死你所有的局部变化,所以谨慎行事(但这就是我在这种情况下想要的).

mercurial

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

Django - 使用模板标签和'带'?

我有一个自定义模板标签:

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)

知道如何绕过这个吗?

django

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

在字符串中查找子字符串,但仅限于整个单词?

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

python string search substring

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

Android:从最佳可用提供商处获取当前位置

我有一些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)

android

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

BeautifulSoup:将contents []作为单个字符串

任何人都知道一种优雅的方式将汤对象的全部内容作为单个字符串?

在我得到的那一刻contents,这当然是一个列表,然后迭代它:

notices = soup.find("div", {"class" : "middlecontent"})
con = ""
for content in notices.contents:
    con += str(content)
print con
Run Code Online (Sandbox Code Playgroud)

谢谢!

python beautifulsoup

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

Django:动态构造{%include%}标签的值?

我想{% include page.html %}在我的Django模板中使用一个标签,并构造page.html动态的值.

在Django有没有办法做到这一点?

这是一个伪代码示例:

{% include page_{{mode}}.html %}
Run Code Online (Sandbox Code Playgroud)

谢谢!

django

19
推荐指数
2
解决办法
6674
查看次数