2012-12-15 41 views
5

Tôi đang cố thêm ứng dụng blog vào dự án Django của mình. Khi tôi đặt mọi thứ lại với nhau, tôi có thể thấy trang bài đăng trên blog của mình, nhưng một số thứ có tệp blogapp/urls.py đang khiến tôi nhận được lỗi đệ quy tối đa ở đâu đó và tôi đang gặp khó khăn khi tìm kiếm. Thứ nhất, đây là thông báo lỗi đầy đủ:Lỗi thời gian chạy Django/Python: Độ sâu đệ quy tối đa vượt quá

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 

Đây là urlpatterns biến từ mysite/urls.py:

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

Và đây là blogapp/urls.py tập tin của tôi:

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')), 
) 

Và, đối với biện pháp tốt, đây là blogapp/models.py tập tin của tôi:

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 

Trả lời

16

Bạn dường như được bao gồm blogapp.urls bên trong chính nó. Nghe có vẻ không hay.

+0

Ugh! Đó chính xác là vấn đề! Cảm ơn bạn rất nhiều, tôi không biết tại sao tôi không bắt được! –

+0

Tôi rơi vào tình huống tương tự. những gì là thay thế cho điều đó? – Volatil3

+0

Cảm ơn @Daniel, tôi đã có một vấn đề tương tự trong một kịch bản Python và nó là do một vấn đề nhập khẩu (không phải thứ tự đúng). Nếu không có gợi ý của bạn, tôi sẽ vẫn bị mắc kẹt với nó. Cảm ơn ! – VivienG

-2

tôi sẽ giả định bạn đang cố gắng để tạo ra tài sản đối tượng thành viên

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

mà lý tưởng nên đi vào phương thức khởi tạo dưới

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

Xin lỗi, tôi bị nhầm bình luận. Nó phải là 'đại diện cho một mục blog', một 'trường hợp lớp' không phải là những gì tôi đã đi cho (newb sai lầm). –

2

Tôi cũng phải đối mặt với vấn đề này khi mã như thế

logout call logout again

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

+1

Đó là vì chế độ xem của bạn được gọi là đăng xuất, vì vậy khi bạn gọi đăng xuất (yêu cầu) chế độ xem chỉ đang gọi chính nó, gây ra đệ quy vô hạn. – Kevin

0

Vấn đề là phương pháp django logout là trong phương pháp xem logout của bạn. Vì vậy, nó tự gọi mình và không bao giờ kết thúc.

Vì vậy, bạn có thể đổi tên phương thức đăng xuất chế độ xem của mình thành 'đăng xuất' hoặc điều gì đó tương tự.

cách khác là nhập khẩu django logout với tên khác như dưới đây và gọi nó là trong phương pháp logout của bạn: từ django.contrib.auth logout nhập khẩu theo core_logout

Các vấn đề liên quan