在Bookstore應用程序中,我有一個表單,用於添加由Author
和Shelf
編寫的Book
,它屬於Bookstore
。一本書需要與一個書架相關聯。使用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 –
如果表單將填充多個模型會怎麼樣?我認爲這應該是一個更合適的問題。是的,我知道如何使用ModelForms。 – bryansis2010