小编Luc*_*wds的帖子

使用 Ajax 动态更新 Django 表单字段选项以获取新的查询集

我是编码和 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)

javascript django ajax django-forms

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

标签 统计

ajax ×1

django ×1

django-forms ×1

javascript ×1