我想創建一個ModelForm,它將用外鍵更新一個表。我似乎工作,但我希望有人能告訴我,如果有更好的方式來做到這一點,或者如果我在下面做的方式有問題。與外鍵的Django ModelForm
在Author和Genres表上使用queryset是否正確?感覺就像我應該在Book模型上使用查詢集,並將外鍵與這些表關聯起來。
models.py
class Author(models.Model):
name = models.CharField(max_length=200)
class Genre(models.Model):
name = models.CharField(max_length=200)
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey('Author')
genre = models.ForeignKey('Genre')
forms.py
class BookForm(ModelForm):
title = forms.CharField(max_length=200)
author = forms.ModelChoiceField(queryset=Author.objects.all())
genre = forms.ModelChoiceField(queryset=Genre.objects.all())
class Meta:
model = Book
fields = ['title', 'author', 'genre']
views.py
def add_book(request):
if request.method == 'POST':
form = BookForm(request.POST)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect('/add/')
else:
form = BookForm()
謝謝! (填充文本) – user3184033