2012-12-15 9 views
5

Sto cercando di aggiungere un'app blog al mio progetto Django. Quando metto tutto insieme, posso vedere la mia pagina dei post del blog, ma qualcosa con il file blogapp/urls.py mi sta causando un errore di ricorsione massimo da qualche parte e sto avendo difficoltà a trovarlo. In primo luogo, qui è il messaggio di errore in pieno:Errore di runtime di Django/Python: Superata profondità di ricorsione superata

RuntimeError at /admin/ 
maximum recursion depth exceeded while calling a Python object 
Request Method: GET 
Request URL: localhost/admin/ #I edited this due to a posting error 
Django Version: 1.4 
Exception Type: RuntimeError 
Exception Value:  
maximum recursion depth exceeded while calling a Python object 
Exception Location: /Users/antonioalaniz1/tmp/newproject/DJANGO/lib/python2.7/site-packages/Django-1.4-py2.7.egg/django/utils/translation/trans_real.py in get_language, line 222 
Python Executable: /Users/antonioalaniz1/tmp/newproject/DJANGO/bin/python 
Python Version: 2.7.1 

Ecco l'urlpatterns variabili da mysite/urls.py:

urlpatterns = patterns('', 
    url(r'^polls/', include('polls.urls')), 
    url(r'^blogapp/', include('blogapp.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

E questo è il mio blogapp file/urls.py:

from django.conf.urls import patterns, include, url 
from django.views.generic import ListView 
from blogapp.models import Post 
urlpatterns = patterns('', 
    url(r'^', ListView.as_view(queryset=Post.objects.all().order_by("-created")[:2], 
          template_name="/Users/antonioalaniz1/tmp/newproject/DJANGO/mysite/templates/blogapp/blog.htm l")),  
    url(r'^blog/', include('blogapp.urls')), 
) 

E, per buona misura, questa è la mia blogapp/lima models.py:

from django.db import models 

class Post(models.Model): 
    '''represents a class instance of a blog entry''' 
    title = models.CharField(max_length=100) 
    created = models.DateTimeField() 
    body = models.TextField() 

    def __unicode__(self): 
     return self.title 

risposta

16

Sembra che tu stia compreso blogapp.urls al suo interno. Non sembra una buona idea.

+0

Ugh! Questo era esattamente il problema! Grazie mille, non so perché non l'ho capito! –

+0

Mi trovo in una situazione simile. qual è l'alternativa? – Volatil3

+0

Grazie a @Daniel, ho avuto un problema simile in uno script Python ed era dovuto a un problema di importazione (non dell'ordine corretto). Senza il tuo suggerimento sarei ancora bloccato con esso. Grazie ! – VivienG

-2

Vorrei assumere si sta cercando di creare le proprietà oggetto membro

''represents a class instance of a blog entry''' 
    title = models.CharField(max_length=100) 
    created = models.DateTimeField() 
    body = models.TextField() 

che idealmente dovrebbe andare nel metodo di costruzione sotto

def __init__(self): 
''represents a class instance of a blog entry''' 
    title = models.CharField(max_length=100) 
    created = models.DateTimeField() 
    body = models.TextField() 
+0

Mi dispiace, ho erroneamente il commento. Dovrebbe essere 'rappresenta un post di blog', una 'istanza di classe' non era quello che stavo per (errore newb). –

2

sto anche affrontare questo problema quando il codice del genere

logout call logout again

def logout(request): print 'under logout user ++++++++++++++' + str(request.POST) logout(request) return redirect('/home/')

+1

È perché la tua vista è chiamata logout, quindi quando chiami logout (richiesta) la vista si chiama da sola, causando una ricorsione infinita. – Kevin

0

Il problema è che il metodo Django disconnessione è nel vostro metodo di visualizzazione logout. Quindi si chiama e non finisce mai.

Quindi è possibile rinominare il metodo di logout della visualizzazione come "signout" o qualcosa del genere.

altro modo è quello di importazione Django il logout con altro nome come qui di seguito e lo ha chiamato nel metodo di logout: da django.contrib.auth di logout di importazione come core_logout

Problemi correlati