/
nmktth
/
web-development-sem-4
Обзор
Документация
Войти
/
nmktth
/
web-development-sem-4
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
seed_db.py
113 строк
5 KB
artem
feat: complete Realty frontend, accessibility and lab reports
02 июн 2026, 08:46
02 июн 2026, 08:46
873b76d
Код
Авторство
О чём код?
import os import random import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') django.setup() from realty.models import ( # noqa: E402 Advertisement, NeighborRequest, News, User, ) def seed(): # 1. Создаем пользователей if User.objects.count() < 10: for i in range(1, 12): username = f'user{i}' email = f'user{i}@example.com' if not User.objects.filter(email=email).exists(): User.objects.create_user( username=username, email=email, password='password123', first_name=f'Имя{i}', last_name=f'Фамилия{i}', role='user' ) users = list(User.objects.all()) # 2. Создаем объявления (Лаба 10, пункт 3 - минимум 10) cities = [ 'Москва', 'Санкт-Петербург', 'Казань', 'Новосибирск', 'Екатеринбург'] types = ['room', 'flat', 'house', 'bed'] if Advertisement.objects.count() < 10: for i in range(1, 15): Advertisement.objects.create( user=random.choice(users), title=f'Уютное жилье #{i}', description=( f'Прекрасный вариант для проживания номер {i}. ' 'Все удобства включены.'), type=random.choice(types), deal_type='rent_out', price=random.randint( 20000, 100000), city=random.choice(cities), address=f'Улица Пушкина, дом {i}', is_active=True) # 3. Создаем заявки на соседей (Лаба 10, пункт 4 - данные из 3-й таблицы) if NeighborRequest.objects.count() < 10: for i in range(1, 12): NeighborRequest.objects.create( user=random.choice(users), city=random.choice(cities), description=( 'Ищу соседа для совместной аренды. ' f'Я чистоплотный и спокойный #{i}'), looking_for_apartment=True, is_active=True) # 4. Заполняем журнал для виджета главной страницы (Лаба 11) news_items = [ ('Как выбрать район для аренды', 'Сравните транспорт, инфраструктуру и среднюю стоимость жилья ' 'в нескольких районах.'), ('Что проверить перед подписанием договора', 'Проверьте паспорт владельца, состояние квартиры и перечень ' 'имущества в приложении к договору.'), ('Как подготовиться к просмотру квартиры', 'Составьте список вопросов и заранее проверьте дорогу до работы ' 'или университета.'), ('Залог при аренде: основные правила', 'Уточните сумму залога, условия возврата и зафиксируйте их ' 'в договоре аренды.'), ('Как безопасно снять жилье', 'Не переводите деньги до просмотра квартиры и внимательно ' 'проверяйте документы.'), ('Совместная аренда: как найти соседа', 'Обсудите бюджет, бытовые привычки и правила проживания ' 'до заключения договора.'), ('Как составить объявление о сдаче жилья', 'Добавьте понятный заголовок, адрес, цену и подробное ' 'описание объекта.'), ('Какие вопросы задать владельцу', 'Уточните стоимость коммунальных услуг, доступность интернета ' 'и правила проживания.'), ('Почему важно указать метро', 'Информация о ближайшей станции помогает быстрее оценить ' 'расположение объекта.'), ('Как сравнивать предложения', 'Смотрите не только на цену, но и на залог, адрес, состояние жилья ' 'и условия договора.'), ] for title, content in news_items: News.objects.get_or_create(title=title, defaults={'content': content}) print("База данных успешно наполнена!") if __name__ == '__main__': seed()