Выбор детей django-mptt работает на локальном хосте, но не на сервере - PullRequest
0 голосов
/ 26 июля 2010

У меня один и тот же код на локальном хосте и на сервере (благодаря Mercurial), но он работает немного по-другому. Я хочу отобразить категорию и ее подкатегории в шаблоне, используя этот код:

views.py:

def category(request, category_slug):
    try:
        category = Category.objects.get(slug=category_slug)
    except:
        raise Http404
    subcats = category.get_children()

    return render_to_response('catalogue.html',
            {'category': category,
            'subcats': subcats,
    'header_template':'common/includes/header_%s.html' % flixwood_settings.CURRENT_SITE
            },
            context_instance=RequestContext(request))

шаблон:

<div class='subcats'>
    {% for subcat in subcats %}
    {% ifequal subcat.level 1 %}
    <div class="item">
    <a href="{% url flixwood.views.category category_slug=subcat.slug %}"><img src="{% thumbnail subcat.image 66x66 %}" class="thumb"></a>
    <a href="{% url flixwood.views.category category_slug=subcat.slug %}" class="name">{{ subcat.category }}</a>
                    {{ subcat.short_description|safe }}
    <div class="clear_left"></div>
    </div>
    {% cycle '' '' '<div class="clear_left"></div>'|safe %}
    {% endifequal %}
    {% endfor %}
</div>

но, тем не менее, этот код прекрасно работает на локальном хосте (подкатегории отображаются правильно) - он не работает на сервере, а {{subcats | length}} возвращает 0. Я сравнил значения из баз MySQL на localhost и на сервере - они верны и наследование должно работать. Самое смешное, что тот же запрос отлично работает в manage.py shell на сервере.

Что за хак с ним не так?

1 Ответ

0 голосов
/ 27 июля 2010

Проблема была решена - она ​​была в .pyc файлах, которые воссоздаются только после перезапуска apache.Вот почему правильный код в .py файлах не работал.

...