1

URL タグからの URL リクエストに基づいて、ドロップダウン ボックスに事前入力したいと考えています。サイトが本のリストである場所を取得しようとしています。本のページにいるときに、その本についてメモを取りたい場合は、「メモを取る」ボタンを押します。するとメモ フォーム ページが表示され、上部にある書籍名のドロップ ダウン ボックスに、その書籍ページのタイトルが事前に入力されます。

「book/detail.hmtl」ページの私の URL は次のようになります。

{% url 'books:take_notes' book.id %}

view.py - 次に、メモを取るページのために、次のように NoteForm() を事前入力しようとしました:

def take_notes(request, book_id):
  mybook = Book.objects.get(pk=boo_id)
  form = NoteForm(initial={'book':mybook.title})

urls.py -

url(r'^take_notes/(?P<book_id>\d+)/$', views=take_notes, name='take_notes'),

NoteForm() には 3 つのフィールドがあります

class NoteForm(forms.ModelForm):
    class Meta:
        model = Note 
        fields = ('book', 'title', 'note',)
        widgets = {
            'note': forms.Textarea,
        }

「タイトル」にイニシャルを使用すると事前入力されますが、ドロップダウン ボックスであるため「本」には入力されません。何か案は?ありがとう。

4

2 に答える 2

1

おそらくコントロールに表示されているタイトルを渡すことで、選択ボックスに事前入力しようとしています。ただし、基になる値を渡す必要があります。ForeignKey の場合は、関連するオブジェクトの ID です。

于 2013-08-17T15:32:37.197 に答える
1

ビューのbook_id代わりに設定してみてくださいbook

 form = NoteForm(initial={'book_id':book_id})
于 2013-08-17T15:35:05.380 に答える