0 / 0 / 0
Регистрация: 05.07.2014
Сообщений: 58

Как в else отобразить не добавленные элементы в DRF

08.01.2020, 23:49. Показов 1418. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Добавляю через файл записи в модель. Через post передается xls файл, парсится и добавляются значение в бд. С помощью исключения происходит проверка на наличие имеющихся записей в базе, записываются только те записи, которые отсутствуют.
Подскажите пожалуйста, как можно написать else для отображения в json записей, которые уже имелись и не добавились.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def post(self, request):
    file = request.FILES['file_data']
    file_data = xlrd.open_workbook(file_contents=file.read())
    sheet = file_data.sheet_by_index(0)
    for row in range(sheet.nrows):
        if row == 0:
            continue
        try:
            device_found = Device.objects.get(inventory_number=str(sheet.row_values(row)[2])
        except Device.DoesNotExist:
            device = Device()
            device.name = sheet.row_values(row)[0]
            device.inventory_number = sheet.row_values(row)[2]
        else:
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2020, 23:49
Ответы с готовыми решениями:

Как отобразить программно добавленные данных в тч документа?
при программном заполнении табличной части документа не отображаются данные в тч. Если использовать Функцию Этаформа.Получить(); данные...

Как использовать в launncherToolStripMenuItem добавленные элементы
Как использовать в launncherToolStripMenuItem добавленные элементы C# вот проект смотрите что надо чтоб добавленные...

Как использовать добавленные в DataGridView элементы
Добавляю туда элементы. Как их дальше использовать? Подскажите плиз на этом примере stateMachine = new StateMachine<States,...

4
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
09.01.2020, 11:29
То есть вьюшка должна вернуть json?
0
0 / 0 / 0
Регистрация: 05.07.2014
Сообщений: 58
09.01.2020, 14:40  [ТС]
да, в json. Приблизительно как выводит DRF
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
09.01.2020, 16:01
Лучший ответ Сообщение было отмечено alex94 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
result = []
for i in range(1, sheet.nrows):
    inventory_number = str(sheet.row_values(i)[2])
    try:
        d = Device.objects.get(inventory_number=inventory_number)
        result.append({
            'inventory_number': d.inventory_number,
            'id': d.pk,
            #…
        })
    except Device.DoesNotExist:
        d = Device(name=sheet.row_values(i)[0], inventory_number=inventory_number)
        d.save()
return JsonResponse(result)
Или вместо последней строчки, если у вас старая джанга: Настройка встроенного сервера Django
1
0 / 0 / 0
Регистрация: 05.07.2014
Сообщений: 58
10.01.2020, 07:00  [ТС]
Огромное спасибо, очень помогли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.01.2020, 07:00
Помогаю со студенческими работами здесь

Как удалить элементы добавленные посредством DOM?
Добрый день! Можно добавить элемент при помощи append, html и тд. Но когда эти элементы пытаюсь удалить при помощи remove, они не...

Просмотреть динамически добавленные элементы
Добрый день. Подскажите начинающему с помощью каких инструментов и как я могу увидеть динамически добавленную в браузер HTML разметку. ...

Как считать данные в приложении (kotlin) с rest api? DRF
Ситуация следующая: мне нужно считывать в моё мобильное приложение данные с сайта( в моём случае я взял для обучения этим навыкам сайт rest...

Как получить вычисляемое поле при создании объекта через DRF?
Добрый день, уважаемые. Подскажите, пожалуйста, как мне в методе create создать вычисляемое поле? Ну то есть при получении данных из...

Получать из БД только добавленные элементы, а не каждый раз всю заново (База большая)
суть заключается в следующем, есть таблица в базе данных (около 1 000 000 записей максиму, тоесть может быть и меньше), есть DataTable в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru