2011-09-06 52 views
2

嗨,我有以下db.Model的AppEngine应用程式:比较的AppEngine数据库值在Django

class Cinema(db.Model): 
    name = db.StringProperty() 
    address = db.StringProperty() 
    distance = db.IntegerProperty() 
    user = db.ReferenceProperty(RunningUser) 

当我填写我的模板万物正常工作:

  {% for cinema in cinemas %} 
       <tr> 
        <td><img src="/images/cinema.png"></td> 
        <td> 
         <a href="..."> 
          <h2>{{cinema.name}}</h2> 
         </a> 
         {{cinema.address}} 
        </td> 
        <td> 
         {% if cinema.distance > 10000 %} 
          <p>red</p> 
         {% endif %} 
        </td> 
       </tr> 
      {% endfor %} 

除if语句。 Python提出了TemplateSyntaxError: 'if' statement improperly formatted exception。根据Django,它应该没问题。那么这三条线有什么问题呢?

{% if cinema.distance > 10000 %} 
    <p>red</p> 
{% endif %} 
+1

确保你指的是同一版本的Django文档的您AppEngine上使用。 – Ski

+0

感谢您的回答。版本0.96(这是appengine的标准版本)不支持更大的操作员。 –

+1

Appengine有Django 1.2。您可以使用'use_library'更改版本(http://stackoverflow.com/questions/4994913/app-engine-default-django-version-change)。虽然我个人认为django不适合appengine。我会在Django上推荐'Kay Framework'或'Flask'。我认为Django只是一个巨大的开销,在使用appengine时会引起头痛。 – Ski

回答

1

试试这个:

{% if cinema.distance > 10000 %} 
    <p>red</p> 
{% endif %} 

来自:https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#id3

+0

我尝试了所有与括号的变化...没有它工作...或者我错过了一个细节? –

+0

上面的解决方案必须工作!如果您仍然收到错误,则可能是您模板中的其他位置!仔细检查所有标签!并确认您是否关闭该块(endif)! –

+0

我认为问题在于我使用appengine的标准django版本(0.96)。看来这个版本不支持>操作符。 –