2016-05-06 2 views
0

Я пытаюсь фильтровать мой QuerySet для моей формы выпадающего спискаФильтрация выпадающего QuerySet в виде Django

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) в мой рабочий вид)

bu t теперь я получаю ошибку: 'ProductForm' object has no attribute 'UOM'

Я ясно вижу, что эта форма имеет атрибут UOM. В чем может быть проблема? Также будет ли этот подход работать для фильтрации данных из моего набора данных выпадающего списка?

ответ

1

Попробуйте это:

form.fields['UOM'].queryset = UOM.objects.filter(id=pk) 
Смежные вопросы