2012-12-15 77 views
5

我正在嘗試將博客應用程序添加到我的Django項目中。當我把所有東西放在一起時,我可以看到我的博客文章頁面,但是blogapp/urls.py文件導致我在某處發生最大遞歸錯誤,而且我很難找到它。首先,這裏是完全錯誤消息:Django/Python運行時錯誤:超過最大遞歸深度

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 

下面是從的mysite/urls.py變量的URL模式:

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

這是我blogapp/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')), 
) 

而且,良好的措施,這是我blogapp/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 

回答

16

你似乎裏面包括本身blogapp.urls。聽起來不是一個好主意。

+0

呃!這正是問題所在!非常感謝,我不知道爲什麼我沒有聽到! –

+0

我也陷入了類似的情況。那是什麼選擇? – Volatil3

+0

感謝@Daniel,我在Python腳本中遇到了類似的問題,這是由於導入問題(而不是正確的順序)造成的。沒有你的提示,我仍然會堅持下去。謝謝 ! – VivienG

-2

我會假設你想創建成員對象屬性

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

理想情況下應該進入構造方法下

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

對不起,我貼錯標籤的註釋。它應該是「代表博客條目」,「類實例」不是我想要的(新錯誤)。 –

2

當代碼一樣,

logout call logout again

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

+1

這是因爲你的視圖被稱爲註銷,所以當你調用註銷(請求)視圖只是調用自己,造成無限遞歸。 – Kevin

0

的問題是,Django的退出方法是在你看來註銷方法,我也面臨這個問題。所以它自稱並永不結束。

因此,您可以將您的視圖註銷方法重命名爲「註銷」或類似的東西。

另一種是進口的Django註銷與其他名稱,如下面並要求它在你的註銷方法:從django.contrib.auth進口註銷 作爲core_logout

相關問題