我正在尝试为我的表单下拉列表过滤查询集

表格

class ProductForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = [  'GTIN','name','style1','style2','style3','size','dimension','color','UOM','description','keywords', 'defaultPrice' ,'customerdiscount']


view.py

@login_required
def product_edit(request,pk,uri):
    uri = _get_redirect_url(request, uri)
    post = get_object_or_404(Product, pk=pk)
    if request.method == "POST":
        form = ProductForm(request.POST, instance=post)
        if form.is_valid():
            product = form.save(commit=False)
            product.creation_time = timezone.now()
            product.save()
            messages.add_message(request, messages.SUCCESS, product.name + "-SUCCESS Object saved sucssefully")
            return redirect(uri)
    else:
        form = ProductForm(instance=post)
        form.UOM.queryset = UOM.objects.filter(id=pk)

    material = post.material
    return render(request, 'item/product/product_edit.html', {'form': form, 'material':material })


我不知道我的方法是否正确(我在工作视图中添加了以下行形式.UOM.queryset = UOM.objects.filter(id = pk))

但是现在我得到一个错误:'ProductForm' object has no attribute 'UOM'

我清楚地看到此表单确实具有UOM属性。可能是什么问题呢?同样,这种方法是否可以从我的下拉数据集中过滤数据?

最佳答案

尝试这个:

form.fields['UOM'].queryset = UOM.objects.filter(id=pk)

关于python - 在Django View 中过滤下拉查询集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37080758/

10-10 15:57