我是编码和 django 的新手,在查看了我找到的答案后,我正在努力寻找以下问题的解决方案。
我正在创建一个包含多个字段的搜索表单。当用户选择第一个字段category(并且在点击搜索之前)时,我想动态更改第二个字段的查询集sub_category,以便仅显示相关值。
我有models.py如下:
class Product(models.Model):
category = models.ForeignKey("Category")
sub_category = models.ForeignKey("SubCategory")
class Category(models.Model):
name = models.CharField(max_length=256)
class SubCategory(models.Model):
category = models.ForeignKey("Category")
name = models.CharField(max_length=256)
Run Code Online (Sandbox Code Playgroud)
我的forms.py包括:
class BasicSearchForm(forms.Form):
category = forms.ModelChoiceField(
label='Category',
queryset=Category.objects.all(),
to_field_name="name",
empty_label=None,
initial="Red")
sub_category = forms.ModelMultipleChoiceField(
required=False,
label='Type',
queryset= SubCategory.objects.all(),
to_field_name="name",
widget=forms.Select)
Run Code Online (Sandbox Code Playgroud)
我的views.py包括:
def search(request):
if request.method == 'POST':
form = BasicSearchForm(request.POST)
if form.is_valid():
category = form.cleaned_data['category']
sub_category = form.cleaned_data['sub_category']
return render(request, 'myapp/search.html', {'form': form})
else: …Run Code Online (Sandbox Code Playgroud)