django устанавливает значение логического поля в представлениях - PullRequest
1 голос
/ 13 октября 2019

Мне нужно установить все значения BooleanField в False с помощью кнопки в моем шаблоне.

модель:

class VyberJedla(models.Model):

    nazov_jedla = models.CharField(max_length=100)
    ingrediencie = models.CharField(max_length=500)
    vybrane = models.BooleanField(default=False)

    def __str__(self):
        return self.nazov_jedla

представление:

def vymazatVybrane(request):
    jedlo = VyberJedla.objects.all
    jedlo.vybrane = False
    jedlo.save()

    return redirect('/')

шаблон (кнопка):

<a href="{% url 'vymazatVybrane' %}">
      <button type="button">
      CHECK
      </button></a>

ошибка: ошибка AttributeError at / vymazatVybrane 'метод'объект не имеет атрибута' выбрано '

1 Ответ

1 голос
/ 13 октября 2019

Если вы хотите установить для поля vybrane всех VyberJedla записей значение False, вам следует использовать метод .update(..) [Django-doc] :

def vymazatVybrane(request):
    jedlo = VyberJedla.objects.all().<b>update(vybrane=False)</b>
    return redirect('/')

Если вы хотите установить только подмножество VyberJedla записей, вам необходимо .filter(..) [Django-doc] набор запросов.

Обратите внимание, что обычно методы GET не предназначены для изменения сущностей (и их значений). Вы можете сделать это запросом POST / PATCH.

...