0

いくつかのフィールドが期待どおりに機能するモデルフォームがあります。ここで、特定の理由により、フォームフィールドを表示する必要がありますが、ビュー'EditPostForm' object has no attribute 'about'を呼び出すとエラーが発生mydata1 = form.aboutします。しかし、フィールドについてはもちろん存在します。form.data.aboutまた、動作しませんなど。では、どうすれば入手できますか?ありがとう。

4

1 に答える 1

1

フォームにインスタンスが関連付けられている場合は、試すことができます

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

以下のコメントに基づいて、ManyToManyリレーションを使用している場合は、次のように値を取得できます。

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

または、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'
于 2013-03-20T22:15:35.657 に答える