И так у нас есть Модель и Таблица, которая связана с этой моделью, теперь нужно заполнить эту таблицу данными для этого в Django есть встроенная админка, которую можно настроить в файле admin.py
Сначала импортируем модель House
from .models import House
либо
from houses.models import House
И свяжем админку с моделью с помощью декоратора
@admin.register(House)
Создадим класс AdminHouse, который наследуется от admin.ModelAdmin, в нем мы будем конфигурировать отображение нашей панели
class AdminHouse(admin.ModelAdmin):
pass
Full code:
from django.contrib import admin
from .models import House
@admin.register(House)
class AdminHouse(admin.ModelAdmin):
pass
Создадим пользователя, который будет иметь доступ к админке
CTRL+ALT+R
createsuperuser
или
(pyvenv) vlad@vs:~/pyvenv/sites/blog$ python manage.py createsuperuser
Теперь введем:
- Имя: admin
- Email: xxx@mail.ru
- Pass: admin12345 (повторить 2 раза, не менее 8 символов)
- (pyvenv) vlad@vs:~/pyvenv/sites/blog$ python manage.py runserver
- Переходим: http://127.0.0.1:8000/admin
- Если забыл пароль, то можно создать нового юзера
- (pyvenv) vlad@vs:~/pyvenv/sites/blog$ python manage.py createsuperuser
В админке мы видим два приложения “HOUSES” и “Пользователи и Группы”
Нажмем на Пользователи и выберем admin, добавим имя и фамилию
Нажмем сохранить.
Данные сохранились.
И так, сейчас наше приложение HOUSES на англ. языке, исправим.
Откроем файл apps.py в нутри папки houses, добавим внутри класса HousesConfig поле verbose_name со значением “дома”
Python2
Если возникает ошибка:
SyntaxError: Non-ASCII character
(no encoding declared; see http://www.python.org/peps/pep-0263.html)
то нужно добавить строчку:
# -*- coding: utf-8 -*-
class HousesConfig(AppConfig):
name = 'houses'
verbose_name = "дома"
А затем в файле __init__.py, той же папки создадим переменную
default_app_config = “houses.apps.HousesConfig”
Перезапускаем сервер. Все получилось.
Осталось только переименовать модель, для этого откроем файл models.py и внутри класса House, создадим класс Meta содержащий два параметра:
verbose_name = “дом”
verbose_name_plural = “дома”
Full code:
class House(models.Model):
house_name = models.CharField("Название", max_length=200, default="")
house_price = models.IntegerField("Цена", default=0)
house_description = models.TextField("Описание", default="")
class Meta:
verbose_name = "Дом"
verbose_name_plural = "Дома"
Класс Meta() - содержит мета-информацию, то есть описательную информацию о модели, в нашем случае ее имя в единственном и мн. числе.
Также в нем можно задать имя таблицы:
db_table = "article"
Класс Meta() - включает в себя дополнительные свойства для нашей будущей таблицы. Мы не хотим, чтобы Django самостоятельно давал название нашей таблицы, по-этому мы описываем это в классе Meta.
Так как мы изменили модель, то выполним команду:
CTRL+ALT+R
makemigrations houses
migrate houses
или создадим инструкцию
(pyvenv) vlad@vs:~/pyvenv/sites/blog$ python manage.py makemigrations houses
Далее с помощью инструкции заполним нашу базу данных:
(pyvenv) vlad@vs:~/pyvenv/sites/blog$ python manage.py migrate houses
Обновим страницу
И приложение и модель теперь на русском языке
Комментариев нет :
Отправить комментарий
Оставить отзыв