Вы можете сделать это так:
query = request.GET.get('q', None)
if query:
info.filter(code__exact=query).update(status=False)
Обновление
Как уже упоминалось @brunoDesthuilliers, технически a GET request must be idempotent
означает, что каждый раз, когда вы делаете запрос GET, каждый раз ответ должен быть одинаковым. Короче говоря, вы не должны делать обновления в запросе GET И, честно говоря, его небезопасно обновлять с помощью GET-запроса. Теперь вы можете использовать POST-запросы. Вы можете оформить django's documentation
использования формы для запроса POST. Я приведу короткий пример:
# template (drugs/form.html)
<form action="/your-url/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="OK">
</form>
# form
from django import forms
class QueryForm(forms.Form):
query = forms.CharField(label='Query', max_length=100)
# view
def index(request):
form = QueryForm(request.POST or None)
if request.method == 'POST' and form.is_valid():
query = form.cleaned_data.get('query')
info = Code.objects.all()
info = info.filter(code__exact=query)
info.update(status=False)
context = {
'info':info,
'query':query
}
return render(request, 'drugs/index.html', context)
else:
return render(request, 'drugs/form.html', {'form': form})