2012-05-02 5 views
1

작은 사회적인 서표를 작성하는 Django 1.0 웹 사이트 개발을 진행할 것입니다. 저는 제 5 장에서 북마크를 추가하는 양식을 만들고 지침을 따라 며칠 동안이 오류에 어려움을 겪고 있습니다. 내가 오류 얻을 :Django - AttributeError => 'set'객체에 'get'속성이 없습니다.

AttributeError at /save/ 
'set' object has no attribute 'get' 

오류는 템플릿의 라인 (6) {{form.as_p}}에 슬로우됩니다

views.py 코드는 다음과 같습니다

def bookmark_save_page(request): 
    if request.method == 'POST': 
     form = BookmarkSaveForm(request) 
     if form.is_valid(): 
      # create or get link. 
      link, dummy = Link.objects.get_or_create(
       url=form.cleaned_data['url'] 
      ) 
      # create or get bookmark. 
      bookmark, created = Bookmark.objects.get_or_create(
       user=request.user, 
       link=link 
      ) 
      # if bookmark is being updated, clear the old tag list 
      if not created: 
       bookmark.tag_set.clear() 
      # create new tag list 
      tag_names = form.cleaned_data['tags'].split() 
      for tag_name in tag_names: 
       tag, dummy = Tag.objects.get_or_create(name=tag_name) 
       bookmark.tag_set.add() 
      # save bookmark to database 
      bookmark.save() 
      return HttpResponseRedirect(
       '/user/%s/' % request.user.username 
      ) 
     else: 
      form = BookmarkSaveForm() 
      variables = RequestContext(request, { 
       'form' : form 
      }) 
      return render_to_response('bookmark_save.html', variables) 

그리고 템플릿 코드는 다음과 같습니다 나는 책이 시점에서 붙어 및 찾을 수 없습니다로

{% extends "base.html" %} 
{% block title %}Save Bookmark{% endblock %} 
{% block head %}Save Bookmark{% endblock %} 
{% block content %} 
<form method="post" action=".">{% csrf_token %} 
    **{{ form.as_p }}** 
    <input type="submit" value="save" /> 
</form> 
{% endblock %} 

어떤 도움이 많이 주시면 감사하겠습니다 답변. 감사!

+1

전체 추적을 사용하는 비 바로 가기 접근 방식에 대한 의미 믿습니다. –

+0

@ IgnacioVazquez-Abrams : "Traceback 또는 일어난 일이 아닙니다", lol – jdi

답변

0

이 오류가 있습니까?

for tag_name in tag_names: 
    tag, dummy = Tag.objects.get_or_create(name=tag_name) 
    bookmark.tag_set.add() # not adding the tag? 

아니요 : bookmark.tag_set.add(tag)? .add()은 실제로 오류를 일으키지 않지만 태그를 추가하지 않는다는 것을 알고 있습니다.

역 추적을 보지 않고 추측하고 있습니다.

내 생각 엔 당신이 틀린 RequestContext를 사용하고있는 것입니까?

return render_to_response('bookmark_save.html', 
           {'form': form}, 
           context_instance=RequestContext(request)) 

난 당신이 지금 사용하고있는 방법가 HttpResponse에()

+0

도움을 주셔서 감사합니다. Django 버전 문제입니다. 내가 사용하고있는 책은 Django 1.0이지만 1.4가 설치되어있다. 오류는 실제로 양식의 코드와 텍스트 필드의 속성을 설정하는 것이 었습니다. 내가 그들을 삭제하고 지금은 코드가 잘 작동합니다. –

관련 문제