UnboundLocalError : строка поиска

Я пытаюсь настроить строку поиска, когда я ставлю хороший код на строку поиска, у меня есть продукт, который отображается, но если он не находит продукт, у меня возникает ошибка, поэтому я ставлю сообщение, если он не может найти продукт. сообщение об ошибке (UnboundLocalError: local variable 'product' referenced before assignment) И ошибка возникает на уровне строки, которая содержит контекст (context={'article':product} )

Views.py

@login_required
def search(request):
  code=request.GET.get('search')
  url='http://myAPI/Product/GetProduct'
  x=requests.post(url)
  contenu=x.json()
  all_products=contenu['products']
  selected_produit= next((item for item in all_products if item['code']== code),None)
  if selected_produit != None:
    product=selected_produit
  else:
    messages.error(request,'Article not found.')

  context={'article':product}
  return render(request,'panier/search.html',context)

search.html

  {% if messages %}
      {% for message in messages %}
        <p {% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</p>
      {% endfor %}
  {% endif %}
  
  {{article.code}}
  {{article.name}}

Ошибка объясняет, что не так. Если selected_product является None, то product никогда не присваивается значение. Присвойте ей значение в ветви else или просто используйте selected_product напрямую, поскольку, похоже, нет другого применения переменной product.

Вернуться на верх