Я пытаюсь создать страницу модели, страница также должна иметь «дочерние страницы».
Код моей модели, приведенный ниже, поддерживает сбой Python на моем Mac (python 2.6.1) и Ubuntu 10.04 (python 2.6.5):
from django.db import models
from django.contrib import admin
class Page(models.Model):
slug = models.SlugField(blank=True)
title = models.CharField(max_length=100)
content = models.TextField(blank=True)
children = models.ManyToManyField("self", blank=True)
published = models.BooleanField(default=True)
created = models.DateTimeField(blank=True, auto_now_add=True)
def html(self):
html = "<li>"
html += self.title
children = self.children.all()
if len(children) > 0:
for page in children:
html += page.html()
html += "</li>"
return html
def __unicode__(self):
return self.title
class PageAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('title',)}
admin.site.register(Page, PageAdmin)
Что я делаю не так? Или этот своего рода HTML-рендеринг относится к представлениям?
Спасибо.
PyEval_EvalFrameEx
в трассировке стека могло привести к переполнению стека. Очень похоже на ошибку Python, потому что обычно Python прерывает рекурсию в какой-то момент с помощьюRuntimeError: maximum recursion depth exceeded
. - person AndiDog   schedule 28.12.2010parent
был бы лучшим представлением. - person Benjamin Wohlwend   schedule 28.12.2010