Ожидаемое «нет» в случае ошибки шаблона выписки - PullRequest
0 голосов
/ 03 декабря 2010

На моей странице есть возможность голосования. Любой объект можно полюбить с помощью кнопки «Мне нравится» на Facebook. Если товар уже понравился, я хотел бы скрыть кнопку. Поэтому я написал метод для понравившегося объекта, чтобы проверить, голосовал ли уже пользователь с данным 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. Есть идеи почему? Добавление тега «not» в тег «if» вызывает improperly formatted: /

1 Ответ

2 голосов
/ 03 декабря 2010

В вашем if утверждении в шаблоне отсутствует оператор.

{% if submission.get_vote IP_ADDRESS %}

если submission.get_vote (есть что) IP_ADDRESS? == возможно?

См. Документы Django для получения списка того, что if принимает в шаблоне.

Кроме того, неясно, что такое IP_ADDRESS. Вы имеете в виду REMOTE_ADDR или как-то ссылаться на уже имеющийся у вас IP-адрес?

Кроме того, я бы предложил не использовать голые except:. Ограничьте это исключениями, о которых вы думаете конкретно. Не указав исключение, можно скрыть другие ошибки. Я предлагаю добавить

from django.core.exceptions import ObjectDoesNotExist

, а затем

except ObjectDoesNotExist:

в методе check_vote.

Где вызывается check_vote?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...