Python 带有外键的Django ModelForm
我试图创建一个Python 带有外键的Django ModelForm,python,django,Python,Django,我试图创建一个ModelForm,用外键更新表。我所做的似乎很有效,但我希望有人能告诉我是否有更好的方法来做这件事,或者我下面的方法是否有问题 在Author和Genres表中使用查询集是否正确?感觉上我应该在书模型上使用查询集,并将外键与这些表关联起来 models.py: 类作者(models.Model): name=models.CharField(最大长度=200) 课程类型(models.Model): name=models.CharField(最大长度=200) 教材(model
ModelForm
,用外键更新表。我所做的似乎很有效,但我希望有人能告诉我是否有更好的方法来做这件事,或者我下面的方法是否有问题
在Author
和Genres
表中使用查询集是否正确?感觉上我应该在书
模型上使用查询集,并将外键与这些表关联起来
models.py
:
类作者(models.Model):
name=models.CharField(最大长度=200)
课程类型(models.Model):
name=models.CharField(最大长度=200)
教材(models.Model):
title=models.CharField(最大长度=200)
author=models.ForeignKey('author')
流派=模型。外键('流派')
forms.py
:
类图书格式(ModelForm):
title=forms.CharField(最大长度=200)
author=forms.modelcooicefield(queryset=author.objects.all())
genre=forms.modelcooicefield(queryset=genre.objects.all())
类元:
模型=书
字段=[“标题”、“作者”、“流派”]
views.py
:
def添加书(请求):
如果request.method==“POST”:
表单=图书表单(request.POST)
如果form.is_有效():
保存(commit=True)
返回HttpResponseRedirect(“/add/”)
其他:
form=BookForm()
我真的不知道你们在问什么,或者你们为什么想在书上设置查询集
实际上,您没有更改任何字段上的任何默认值,因此无需重新定义它们:您的表单可以简单地
class BookForm(ModelForm):
class Meta:
model = Book
它的工作原理也完全一样。我不太清楚你们在这里问什么,或者你们为什么想要一本书的查询集 实际上,您没有更改任何字段上的任何默认值,因此无需重新定义它们:您的表单可以简单地
class BookForm(ModelForm):
class Meta:
model = Book
它的工作原理完全相同。这段代码唯一的错误是覆盖了模型表单的默认行为。 将其更改为:
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'genre']
让django处理这些的定义。
如果需要添加标签或小部件,可以在Meta类中定义它们:
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'genre']
labels = {'title': 'Book title', }
例如。此代码唯一的错误是覆盖了模型表单的默认行为。 将其更改为:
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'genre']
让django处理这些的定义。
如果需要添加标签或小部件,可以在Meta类中定义它们:
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'genre']
labels = {'title': 'Book title', }
例如。谢谢!(填充文字)谢谢!(填充文本)