私は次のDjangoフォームを持っています:
class PageForm(forms.Form):
title = forms.CharField(max_length=50)
image = forms.ImageField(required=False)
content = forms.CharField(widget=forms.Textarea(attrs={'cols':20, 'rows':10}))
これを使用して、特定のテンプレートから新しいページを作成しています。しかし、編集の可能性も追加したいので、フォームを使用して、ページ ID から取得されたいくつかのデフォルト値のみを使用して同じテンプレートをレンダリングしたいと思います。これは私が持っているものです:
page_to_edit = Page.objects.filter(id=page_id)[0] // Get page from model
title = page_to_edit.title
content = page_to_edit.content
picture = page_to_edit.picture.order_by('?')[0].file // Here file is a models.ImageField
initial_data = {'title' : title, 'content' : content, 'image' : picture}
form = PageForm(initial_data)
// Finally return this form to template
これで、タイトルとコンテンツに対して希望どおりに機能し、それらは初期値を使用してテンプレートで適切にレンダリングされますが、ImageField は空です。また、picture.urlの代わりにpicture.urlを渡そうとしましたが、変更はありません。
どんな助けでも大歓迎です。
ではごきげんよう