小编use*_*033的帖子

带有外键的 Django ModelForm

我正在尝试创建一个ModelForm用外键更新表的表。我所拥有的似乎有效,但我希望有人能告诉我是否有更好的方法来做到这一点,或者我在下面做的方式是否有问题。

Author在and表上使用查询集是否正确Genres?感觉我应该在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')
Run Code Online (Sandbox Code Playgroud)

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']
Run Code Online (Sandbox Code Playgroud)

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()
Run Code Online (Sandbox Code Playgroud)

python django

1
推荐指数
1
解决办法
5539
查看次数

标签 统计

django ×1

python ×1