allposts_vitali
@allposts_vitali

Как сделать запись в БД по условию Django?

Здравствуйте, после передачи формы с запросом POST, происходит запись данных в БД. Мне необходимо реализовать запись по условию, в случае, если в БД нет подобной записи (одновременно 2 условия).

Что я хотел бы узнать:
1. Как сделать так, чтобы save() при записи в БД делал проверку как на SQL, есть ли такие данные уже в БД. Если нет то пишем, если да то выводим сообщение об ошибке.
2. Отдельно сделать запрос подсчета, сколько значений у записей "А" (1, 2 .. 10 записей) только количество. И это количество записать в переменную
3. (По желанию сенсея) Объяснить, что правильнее(быстрее!), когда мы пишем сточные данные в БД и не заморачиваемся, а потом считаем их (как в SQL через группировку) Или проверять, дабы не плодить мусор это наоборот верное решение. (прим. количество около 100К строк)
  • Вопрос задан
  • 450 просмотров
Решения вопроса 1
sim3x
@sim3x
Сделать так чтобы save() при записи в БД делал проверку как на SQL а есть ли такие данные уже в БД. Если нет то пишем, если да то выводим сообщение об ошибке.
https://docs.djangoproject.com/en/1.8/ref/models/f...

Отдельно сделать запрос подсчета, сколько значений у записей А (1, 2 .. 10 записей) только количество. И это количество записать в переменную

https://docs.djangoproject.com/en/1.8/topics/db/ag...

# Each publisher, each with a count of books as a "num_books" attribute.
>>> from django.db.models import Count
>>> pubs = Publisher.objects.annotate(num_books=Count('book'))
>>> pubs
[<Publisher BaloneyPress>, <Publisher SalamiPress>, ...]
>>> pubs[0].num_books
73
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы