我正在尝试过滤表单下拉列表的查询集
form.py
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。可能是什么问题呢?此方法是否可以过滤我的下拉数据集中的数据?
答案 0 :(得分:2)
试试这个:
form.fields['UOM'].queryset = UOM.objects.filter(id=pk)