Подтвердить что ты не робот

Как проверить, существует ли что-то в базе данных postgresql с помощью django?

Я хочу проверить, не содержит ли строка в базе данных конкретного ввода. Если он уже существует, запретите его добавление снова, если нет, добавьте его, как обычно.

Как я могу запросить базу данных, если что-то существует, не вытаскивая все содержимое из базы данных, чтобы проверить?

4b9b3361

Ответ 1

Вы можете использовать

Entry.objects.filter(name='name', title='title').exists()

Это вернет вам истинные/ложные значения. Когда вы используете count, orm генерирует запрос, который будет выполняться намного дольше, чем метод exists. Метод get вызовет исключение, если объект не существует.

request.POST - это словарь, поэтому для проверки db с ним вы используете: i.e.:

Entry.objects.filter(name=request.POST['name'], title=request.POST['title']).exists()

Ответ 2

Ответ на ваш вопрос: "Да". Однако, я думаю, вам следует также изучить альтернативу запросам базы данных; создайте уникальный ключ в наборе полей, в которых вы не хотите, чтобы дубликаты существовали для.

Теперь, чтобы ответить на ваш вопрос. Ознакомьтесь с документами Django для запроса:

https://docs.djangoproject.com/en/dev/topics/db/queries/

Короче говоря, если у вас есть модель данных для Thing, Thing.objects - это интерфейс для доступа к запросам. из документов (с использованием записи в блоге, в которой в качестве примера используется строка заголовка):

Entry.objects.get(headline__exact="Man bites dog")

Полные возможности интерфейса - это то, что вы ожидаете от базы данных (имеется богатый набор сравнений с данными, отличными от точных совпадений). Я бы предложил более подробно изучить документацию по вашей конкретной проблеме.