Python 在Django中使用表单
我正在创建一个网站,有两种形式。我拥有的数据库有作者和标题。我想做的是,当我在我的选择字段中单击作者时,我希望筛选标题,以便用户只能选择这些标题。我该怎么做Python 在Django中使用表单,python,django,django-forms,Python,Django,Django Forms,我正在创建一个网站,有两种形式。我拥有的数据库有作者和标题。我想做的是,当我在我的选择字段中单击作者时,我希望筛选标题,以便用户只能选择这些标题。我该怎么做 class ArticleForm(forms.ModelForm): author = forms.ModelMultipleChoiceField(queryset=Article.objects.all()) title = forms.ModelMultipleChoiceField(queryset=Articl
class ArticleForm(forms.ModelForm):
author = forms.ModelMultipleChoiceField(queryset=Article.objects.all())
title = forms.ModelMultipleChoiceField(queryset=Article.objects.filter(author=author))
class Meta:
model = Article
fields = ('author','title')
单击作者姓名时,标题仍然为空。我该怎么办
下面是我的模型
class Article (models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
首先,你需要文章和作者之间的关系。如果您有这样的模型:
class Author(models.Model):
name = models.CharField(max_length=200)
class Article(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author)
而文章
属于作者
,而作者
可以有许多文章
s
基于作者
模型的模型表单允许您添加(或修改)作者。基于文章
的模型表单允许您添加(或修改)文章。这些都很有用,但在这种情况下就不行了。我们需要一个用于选择作者和文章的标准表单:
class ArticleForm(forms.Form):
author = forms.ModelChoiceField(queryset=Author.objects.all())
article = forms.ModelChoiceField(queryset=Article.objects.all())
此表单将为作者
和文章
字段提供一个选择小部件。它让你选择其中一个。它会将所有作者和所有文章呈现到模板中。如果您有一些条目,这是可以的,但是很多条目都会有问题
下一部分是筛选文章选项。这个问题的答案有点难。因为这取决于您的项目需求
- 您可能需要编写一些JavaScript来过滤选择字段 基于作者李>
- 您可能需要为以下字段添加验证程序: 相互依赖李>
- 您可能不想在中加载所有文章 您可能希望使用Ajax技术来加载文章 属于作者的李>
- 您可能希望使用FormWizard将表单拆分为多个页面/步骤