if语句模板错误中预期'not'

时间:2010-12-02 23:36:27

标签: django facebook django-templates

在我的页面中,我有投票的可能性。每个对象都可以通过脸书“喜欢”按钮来欣赏。如果项目已被喜欢,我想隐藏按钮。所以我为喜欢的对象编写了一个方法来检查给定ip的用户是否已经投票。 IP存储在上下文变量中。

def check_vote(self, ip):
    id = self.id
    logging.debug("id: %s, ip: %s" % (id, ip))
    try:
        voted = Vote.objects.get(uid=id, ip=ip)
        return False
    except:
        logging.debug("returning True")
        return True 

以下是我的观点:

def artifact_finalists(request):           
    submissions = ArtifactSubmission.objects.filter(resized=True, final=True)
    template_name = 'rte/artifact_finalists.html'
    return render_to_response(template_name, {"submissions": submissions, 'voting': voting,}, context_instance=RequestContext(request))

模板:

    {% for submission in submissions %}
        <li style="float:left, width:400px, margin-right:20px">
            <div class="single-submission">
                <div style="float:left, margin-right:10px">
                    <img src="{{ submission.url100 }}" width="100px" />
                </div>
                <div style="float:left">
                    <span style="float:left">{{ submission.name }}</span>
                    <span style="float:left">{{ submission.description }}</span>
                </div>
                <div class="vote">
                    {% if submission.get_vote IP_ADDRESS %}
                        <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like layout="button_count" href="http://ntt.vipserv.org{{submission.get_absolute_url}}"></fb:like>
                    {% endif %}                    </div>
            </div>
        </li>
    {% endfor %}

但它提出了:Expected 'not' in if statement。有什么想法吗?在“if”标记中添加“not”会引发improperly formatted:/

1 个答案:

答案 0 :(得分:2)

模板中的if语句似乎缺少运算符。

{% if submission.get_vote IP_ADDRESS %}

如果submit.get_vote(是什么)IP_ADDRESS? ==或许?

请参阅Django template docs,了解if在模板中接受的内容列表。

此外,还不清楚IP_ADDRESS是什么。你的意思是REMOTE_ADDR,还是以某种方式引用你已经拥有的IP地址?

另外,我建议不要使用裸except:。将其限制为您特别考虑的例外情况。不指定异常可以隐藏其他错误。我建议添加

from django.core.exceptions import ObjectDoesNotExist

然后

except ObjectDoesNotExist:
<_>在check_vote方法中。

check_vote在哪里调用?