Bookstoreアプリケーションでは、とBookstore
に属するBook
とShelf
で書かれたフォームを追加します。本はシェルフに関連付ける必要があります。save()メソッドを使用してDjangoでフォームデータを処理する簡潔な方法
class AddBookForm(forms.Form):
def save(self, request):
#Let's say I put an excrutiating number of fields...say 13.
book_name = self.cleaned_data.get('book_name', None)
book_author_pk = self.cleaned_data.get('book_author_pk', None)
book_genre = self.cleaned_data.get('genre', None)
book_price = self.cleaned_data.get('price', None)
book_summary = self.cleaned_data.get('book_summary', None)
bookshop_location = self.cleaned_data.get('bookshop_location', None)
bookshop_shelf_number = self.cleaned_data.get('bookshop_shelf_number', None)
stock = self.cleaned_data.get('stock', None)
promotional_price = self.cleaned_data.get('promotional_price', None)
author_object = Author.objects.get(pk=book_author_pk)
book = Book(
name = book_name,
author = author_object,
genre = genre,
summary = book_summary
)
book.save(force_insert=True)
shelf = Shelf(
bookshop_location = bookshop_location,
shelf_number = bookshop_shelf_number,
stock = stock,
promotional_price = promotional_price
)
shelf.save(force_insert=True, force_update=False)
私の質問は、実際にはこれを書くより簡潔な方法はありますか?私はかなりあると確信していますが、私はどこかでそれを逃しています。
'ModelForm'を意味しますか? – Sayse
https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#modelform –
フォームに2つ以上のモデルが設定されるとどうなりますか?私はそれがより適切な質問であるべきだと思います。はい、私はModelFormsの使い方を知っています。 – bryansis2010