0

私はドキュメントを正しくフォローしていると思いますが、それでも奇妙な問題が発生します.

私のモデル

class Forme(MPTTModel):

name = models.CharField(max_length=50, unique=True)
source_id = models.IntegerField(max_length=50, unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')

def __unicode__(self):
    return unicode(self.name)

class MPTTMeta:
    order_insertion_by = ['name']

私の見解

def listnode(request):

nodes = Node.objects.using('hmdjango').all()


selectforme = Forme.tree.all()


allnodes = []

for n in Node.objects.using('hmdjango').all() :

    try:
        intervention = FieldDataFieldItemIntervention.objects.using('hmdjango').get(entity_id__exact=n.id)
    except FieldDataFieldItemIntervention.DoesNotExist:
        intervention.field_item_intervention_value = 'BOOM'

    try:
        forme = FieldDataFieldItemForme.objects.using('hmdjango').get(entity_id__exact=n.id)
    except FieldDataFieldItemForme.DoesNotExist:
        forme.field_item_forme_tid = 'BOOM'

    allnodes.append({'id':n.id, 'title':n.title,\

        'intervention':intervention.field_item_intervention_value, \
        'forme':forme.field_item_forme_tid})

return render_to_response('node_list.html', {'nodes':allnodes, 'formes':selectforme}, context_instance=RequestContext(request))

私のテンプレート (mptt_tags をロードしました)

<ul class="root">
{% recursetree formes %}
    <li>
        {{ forme.name }}
        {% if not forme.is_leaf_node %}
            <ul class="children">
                {{ children }}
            </ul>
        {% endif %}
    </li>
{% endrecursetree %}

編集 「フォーム」変数を介した古典的なループは、名前属性にアクセスできることを示しています。したがって、私の推測ではrecursivetree、django-mptt によって提供されるテンプレート タグが、ここでの主な容疑者です。

{% for forme in formes %}
  <li>{{ forme.name }}
  {% endfor %}
4

1 に答える 1

1

問題が見つかりました。

ドキュメントには例があります

<ul class="root">
{% recursetree nodes %}
    <li>
        {{ node.name }}
        {% if not node.is_leaf_node %}
            <ul class="children">
                {{ children }}
            </ul>
        {% endif %}
    </li>
{% endrecursetree %}

ノードはMPTTモデルのインスタンスです。しかし、それ「ノード」と呼ばれる必要があります。また、テンプレートに変数「ノード」を含めることはできません。

于 2012-05-16T13:04:33.773 に答える