मैं मॉडल पेज बनाने की कोशिश कर रहा हूं, पेज "बाल पृष्ठ" भी हो सकता है।Django आत्म-संदर्भित संबंध?
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)
क्या मैं गलत कर रहा हूँ:
मेरे मॉडल कोड नीचे मेरी मैक (अजगर 2.6.1) और Ubuntu 10.04 (अजगर 2.6.5) पर crashing Python रखता है? या क्या यह एचटीएमएल-प्रतिपादन विचारों से संबंधित है?
धन्यवाद।
स्टैक ट्रेस में 'PyEval_EvalFrameEx' कॉल की संख्या से एक स्टैक ओवरफ़्लो हो सकता है। पाइथन बग की तरह दिखता है, क्योंकि आमतौर पर पाइथन कुछ बिंदु पर 'रनटाइम त्रुटि: अधिकतम रिकर्सन गहराई' से रिकर्सन तोड़ देगा। – AndiDog
आपके मॉडल पर एक छोटी टिप्पणी: कई से कई संबंध शायद गलत प्रतिनिधित्व है। एक पेड़ में, एक नोड (या आपके कोड में, एक पृष्ठ) में केवल शून्य या एक अभिभावक होता है। एक विदेशी कुंजी 'माता-पिता' बेहतर प्रतिनिधित्व होगा। –
@piquadrat ध्यान देने के लिए धन्यवाद। मैं नींद आती हूँ। – jussi