2011-02-08 7 views
1

저는 장고에 대해 매우 익숙하기 때문에 이것은 멍청한 질문 일 것입니다. 장고 관리자의 변경 목록보기를 재사용하려고합니다. 나는 관리자 모델을 만들고 changelist 템플릿에 이러한 객체의 목록을 제공하려고합니다. 내 관점에서 내가 가진 :Django 오류 : 'QueryDict'객체에 '_meta'속성이 없습니다.

def placements(request): 
    partner_id = request.session.get('partner_id', 0) 
    self = PlacementAdmin(request.GET, Placement.objects.filter(partner=partner_id)) 
    return render_to_response('publisher/placement/change_list.html', {'cl': self}) 

나는이 오류가 나는 브라우저에서이 기능을 공격하려고하면 'QueryDict'개체가 어떤 속성 '_meta' 사람이 오류가 무엇인지 말해 또는 제공 할 수가 없습니다를 내가 잘못된 트랙에 완전히 빠졌을 때를 대비하여 더 쉬운 방법.

을 Heres 전체 추적 :

Request Method:  GET 
Request URL: http://localhost:8080/publisher/ 
Django Version:  1.3 beta 1 
Exception Type:  AttributeError 
Exception Value:  

'QueryDict' object has no attribute '_meta' 

Exception Location:  /Users/imran/django_env/lib/python2.6/site-packages/django/contrib/admin/options.py in __init__, line 278 
Python Executable: /Users/imran/django_env/bin/python 
Python Version:  2.6.1 
Python Path:  

['.', 
'.', 
'/Users/imran/Workspaces/publisher/django/pub_admin', 
'/Users/imran/django_env/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg', 
'/Users/imran/django_env/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg', 
'/Users/imran/django_env/lib/python26.zip', 
'/Users/imran/django_env/lib/python2.6', 
'/Users/imran/django_env/lib/python2.6/plat-darwin', 
'/Users/imran/django_env/lib/python2.6/plat-mac', 
'/Users/imran/django_env/lib/python2.6/plat-mac/lib-scriptpackages', 
'/Users/imran/django_env/Extras/lib/python', 
'/Users/imran/django_env/lib/python2.6/lib-tk', 
'/Users/imran/django_env/lib/python2.6/lib-old', 
'/Users/imran/django_env/lib/python2.6/lib-dynload', 
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', 
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', 
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', 
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', 
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', 
'/Users/imran/django_env/lib/python2.6/site-packages'] 

답변

2

질문을 게시 할 때 그것은 역 추적 오차를 게시하는 것이 가장 좋습니다!

즉, request.GET을 예상하지 못하는 ModelAdmin 관리 객체로 전달하면 오류가 발생합니다.

더 이상 마술적이고 문서화되지 않은 템플릿 태그에 의해 작동되는 마법의 변경 목록보기 템플릿을 사용하려고하기 때문에 오래 전에 어려움을 겪을 수 있습니다. 장고에 새로운 동일한 문장으로 나타납니다.

나는 장고의 관리자가 해킹하기 쉽지 않기 때문에 잘못된 길을 가고 있다고 생각합니다.

변수에 최소한 ChangeList 개체를 템플릿에 전달해야합니다.

정말로 이것을하고 싶다면 내가 드릴 수있는 유일한 조언은 복제하려고하는 것이므로 django.contrib.admin.options.ModelAdmin.changelist_view()을 살펴 보는 것입니다.

심각하게 말씀 드리고 싶습니다. 장고는 실제로 함께 작업하는 재미 있습니다!

+0

답변 해 주셔서 감사합니다. ModelAdmin.changelist_view()를 살펴 보겠습니다. 하지만 인라인 편집, 정렬, 페이지 매김이 관리 앱의 상자에서 나오는 것과 정말 흡사합니다. 처음부터 모든 것을하지 않고도 앱에서 동일한 뷰를 얻을 수 있다면 정말 대단 할 것입니다. – Imran

+0

그래, 확실히 좋다 :) 만약 당신이 그것을 할거야, 첫 번째 단계는 ChangeList 개체를 재현하고 필요한 데이터를 제공하는 것입니다. 그냥 당신에게 경고했다! –