2013-03-20 1 views
0

여러 필드가있는 모델 폼이 예상대로 작동합니다. 지금은 특정 이유로보기에서 양식 필드를 가져올 필요가 있지만 mydata1 = form.about을 호출하면 오류 'EditPostForm' object has no attribute 'about'이 표시됩니다. 그러나 현장에 대해서는 물론 존재합니다. form.data.about도 작동하지 않습니다. 어떻게 얻을 수 있습니까? 감사. 당신이 ManyToMany relation를 사용하는 경우django 폼은 뷰에서 필드 출력을 얻습니다.

+0

설명하기에 낭비입니다. 이미 답변을 수락합니다. – catherine

답변

1

당신이 그것에 관련된 인스턴스가 형성되면, 당신은 당신이

>>> bf = BookForm(instance=book) 
>>> bf.instance.authors 
<django.db.models.fields.related.ManyRelatedManager object at 0x0000000004658B38> 
>>> bf.instance.authors.all() #which returns a query set of related objects 
[<Author: Kotian>] 
>>> bf.instance.authors.all()[0] 
<Author: Kotian> 
>>> bf.instance.authors.all()[0].name 
u'Kotian' 

같은 값을 얻을 수 아래의 코멘트에

post = EditPost.objects.get(id=id) 
form1 = EditPostForm(instance=post) 
form1.instance.about 

을 바탕으로 시도 할 수 있습니다 또는 방법에 따라 ManyToMany를 정의했습니다.

>>> af = AuthorForm(instance=author) 
>>> af.instance.name 
u'MyName' 
>>> af.instance.book_set 
<django.db.models.fields.related.ManyRelatedManager object at 0x0000000004658C18> 
>>> af.instance.book_set.all() # returns queryset 
[<Book: Book object>, <Book: Book object>] 
>>> af.instance.book_set.all()[0] #accessing first object here 
<Book: Book object> 
>>> af.instance.book_set.all()[0].name 
u'Lepord' 
+0

감사합니다 akotian하지만 현장 출력을 얻지 못했습니다. TextFields는 괜찮습니다. 그러나 ManyToMany 필드는''를 가지고 있습니다. 또한 BooleanField는 양식 필드의 위젯이 아니라 단지 False를 제공합니다. – Goran

+0

@Goran, 도움이된다면 제 편집 된 답변을 참조하십시오. 또한 부울 필드로 시도 할 때 BooleanField에 대한 주석을 얻지 못했고 반환 할 것으로 예상 한 내용을 반환했습니다. '>>> af.instance.title'이 나에게 '사실'을 표시합니다 – akotian

+0

질문에 대한 답변을 잘 해주셔서 감사합니다. 이제 또 다른 문제가 생겨서 새로운 질문을 시작합니다. – Goran

관련 문제