Джанго

Использование значения по умолчанию NULL в модели Django

Использование значения по умолчанию NULL в модели Django
Модель - одна из важных частей приложения Django, основанного на базе данных. Модель определяет структуру базы данных. Тип данных таблицы базы данных и способ вставки данных на основе различных атрибутов описаны в Модели. Подтверждением данных можно управлять с помощью модели. Каждая таблица в базе данных содержит определенное количество полей или столбцов. Модель определяет тип каждого поля таблицы. Атрибут по умолчанию используется в модели для установки значения по умолчанию для определенной области, если пользователь для этого поля не вставляет данные. Значение поля по умолчанию может быть пустой или любое конкретное значение. В ноль а также пустой ценности не совпадают. ноль используется для определения того, разрешено ли пустое значение для определенного поля. Если ноль установлен на Ложь, тогда пустая строка не будет разрешена в поле с целочисленным типом, но пустая строка может быть назначена в поле с типом строки. Если ноль установлен на Правда, тогда значение NULL будет дано в поле целочисленного типа вместо пустой строки. бланk используется в основном для проверки формы и не проверяет тип данных поля. Способ использования По умолчанию а также ноль атрибуты в модели Django показаны в этом руководстве.

Предпосылки:

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

А. Установите Django версии 3+ на Ubuntu 20+ (желательно)
B. Создайте проект Django
C. Запустите сервер Django, чтобы проверить, работает ли сервер правильно или нет.

Настройте приложение Django:

А. Выполните следующую команду, чтобы создать приложение Django с именем база данных.

$ python3 manage.py startapp databaseapp

B. Выполните следующую команду, чтобы создать пользователя для доступа к базе данных Django. Если вы уже завершили работу с пользователем раньше, то вам не нужно запускать команду.

$ python3 manage.py создает суперпользователя

C. Добавьте название приложения в INSTALLED_APP часть настроек.py файл.

INSTALLED_APPS = [

'validationapp'
]

D. Создайте папку с именем шаблоны внутри база данных папку и установите шаблон расположение приложения в ШАБЛОНЫ часть настройки.ру файл.

ШАБЛОНЫ = [

… .
'DIRS': ['/ home / fahmida / django_pro / databaseapp / templates'],
… .
,
]

Модель проекта с атрибутами по умолчанию и нулевыми атрибутами:

Измените модели.ру файл со следующим сценарием для создания таблицы с именем продукты который будет содержать четыре поля без поля id. Эти имена, цена, дата изготовления и дата истечения срока. Ценность ноль атрибут установлен на True для всех полей. Значение бланк атрибут установлен в True для всех полей также. Это означает, что пользователь может оставить поля пустыми перед отправкой формы, которая будет использовать эту модель. В По умолчанию значение атрибута устанавливается для цены, даты изготовления и даты истечения срока действия.

модели.ру

# Модуль импорта моделей
из джанго.модели импорта БД
# Создать класс для определения структуры таблицы учителей
класс Продукт (модели.Модель):
имя = модели.CharField (max_length = 50, null = True, blank = True)
цена = модели.IntegerField (null = True, по умолчанию = ", blank = True)
production_date = модели.DateField (null = True, по умолчанию = '0000-00-00', blank = True)
expire_date = модели.DateField (null = True, по умолчанию = '0000-00-00', blank = True)

Выполните следующие команды миграции, чтобы создать необходимые файлы миграции и таблицу базы данных базы данных SQLite.

$ python3 manage.приложение базы данных makemigrations py
$ python3 manage.Py migrate

Вставка данных с помощью панели администрирования Django:

Измените содержание админ.ру файл со следующим скриптом для регистрации модели в базе данных.

админ.ру
Измените URL-адреса.ру файл со следующим сценарием, чтобы определить путь для открытия административной панели Django.

URL-адреса.ру

# Импортировать админ-модуль
из джанго.contrib import admin
# Импортировать модуль пути
из джанго.путь импорта URL
# Определить путь для клиента и администратора
urlpatterns = [
путь ('админ /', админ.сайт.URL-адреса)
]

Теперь запустите сервер Django и перейдите в административную панель Django, используя следующий URL-адрес.

http: // localhist: 8000 / администратор

откройте форму ввода продукта, нажав Добавить товар. Если пользователь отправляет форму, не вставляя данные, в браузере появится следующий результат. Здесь два поля даты показывают ошибки, потому что значение поля даты по умолчанию не в допустимом формате.

Следующий вывод появится после добавления действительных данных даты. Здесь цена поле пусто для использования атрибута по умолчанию.

Вставка данных с использованием шаблона:

Способ вставки данных в продукты таблица с использованием HTML-формы была показана в этом разделе. Здесь элементы формы будут сгенерированы на основе ранее созданной модели.

формы.ру

# Модуль импорта форм
из форм импорта django
# Импортировать модель клиента
из dbapp.модели импорт продукции
# Определить класс для формы клиента
класс ProductForm (формы.ModelForm):
класс Мета:
model = Продукт
fields = '__all__'

Создайте HTML-файл с именем продукт.html внутри шаблоны папка приложения со следующим скриптом. Данные формы будут отправлены, когда пользователь нажмет на Сохранить кнопка.

продукт.html

Форма заявки клиента



% csrf_token%
форма.as_p

Измените взгляды.ру файл со следующим сценарием для вставки данных в продукты таблица после проверки формы. AddProduct () функция определена в скрипте, чтобы проверить, отправлена ​​ли форма или нет, и если форма отправлена, то она проверит, что данные формы действительны или недействительны. Если действует() функция возвращает правда, тогда данные будут вставлены в продукты таблица, и в браузере отобразится сообщение об успешном выполнении.

взгляды.ру

# Импортировать модуль HttpResponse
из джанго.http.импорт ответа HttpResponse
# Импортировать модуль рендеринга
из джанго.ярлыки импорт рендеринга
# Import ProductForm
из dbapp.формы импорта ProductForm
# Определить функцию для добавления записи о продукте
def AddProduct (запрос):
если запрос.method == "POST":
form = ProductForm (запрос.ПОЧТА)
# Если данные формы действительны или нет
если форма.действует():
пытаться:
# Сохраняем данные формы в базу данных
форма.спасти()
# Определить сообщение для пользователя
data = ['

Товар добавлен.

']
# Вернуть ответ
вернуть HttpResponse (данные)
Кроме:
проходить
еще:
# Определить объект формы
form = ProductForm ()
# Показать форму ввода продукта
вернуть рендер (запрос, 'продукт.html ', ' form ': form)

Измените URL-адреса.ру файл со следующим сценарием, чтобы определить путь для вызова функции просмотра.

URL-адреса.ру

# Импортировать админ-модуль
из джанго.contrib import admin
# Импортировать модуль пути
из джанго.путь импорта URL
# Импортировать представление
из представлений импорта dbapp
# Определить путь для клиента и администратора
urlpatterns = [
путь (", просмотров.AddProduct),
путь ('админ /', админ.сайт.URL-адреса)
]

Теперь запустите сервер Django и откройте базовый URL-адрес в браузере.

http: // localhist: 8000 /

Появится следующая форма.

Следующие ValueError появится, если пользователь отправит форму без добавления данных в форму. Здесь цена поле - целое число, которое не может быть пустой строкой.

Если пользователь вводит действительные данные, как в форме ниже, и нажимает Сохранить кнопка, новая запись о продукте будет вставлена ​​в базу данных.

Следующее изображение появится, если вы откроете только что вставленную запись из Django Dashboard.

Заключение:

Модель была разработана с использованием атрибутов null и атрибутов по умолчанию в этом руководстве. Затем здесь показаны способы вставки данных в эти поля в серверной части и во внешнем интерфейсе, чтобы помочь читателю узнать об использовании атрибутов default и null в базе данных Django.

Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...