Задание
Разработать приложение в соответствие с заданием:
Создайте модель «Article» для веб-приложения. Модель должна содержать поля, такие как «title», «content», «date_published» и «author». Затем создайте миграции для этой модели и примените их к базе данных.
На основе модели "Article" создайте форму для добавления данных о статьях в базу данных. Форма должна включать поля для ввода "title", "content", "date_published" и "author". Реализуйте представление для обработки данных из этой формы и сохранения их в базе данных.
Функционал программы
- добавление статьи через форму
- добавление статей через админку
- редактирование через админку
- удаление через админку
- регистрация и авторизация
- добавление новых пользователей с ограниченными правами
Фрагмент программного кода
from .models import Article, Author from django.forms import ModelForm, TextInput, Textarea class ArticleForm(ModelForm): class Meta: model = Article fields = ['title', 'genre', 'language', 'content', 'date_published', 'author'] # widgets = { # "title": TextInput(attrs={ # 'class': 'form-control', # 'placeholder': 'Введите название статьи' # }), # "genre": TextInput(attrs={ # 'class': 'form-control', # 'placeholder': 'Введите жанр' # }), # "language": TextInput(attrs={ # 'class': 'form-control', # 'placeholder': 'Укажите язык' # }), # "content": Textarea(attrs={ # 'class': 'form-control', # 'placeholder': 'Введите содержание' # }), # "date_published": TextInput(attrs={ # 'class': 'form-control', # 'placeholder': 'Введите дату публикации' # }), # "author": TextInput(attrs={ # 'class': 'form-control', # 'placeholder': 'Укажите автора (-ов)' # }), # } def __init__(self, *args, **kwargs): super(ArticleForm, self).__init__(*args, **kwargs) self.fields['author'].queryset = Author.objects.all()
Структура проекта (упрощенная)
Скриншот архива с проектом
Содержание архива
- Папка Project содержит проект NewspaperWeb
- Папка Скриншоты - содержит скриншоты работы приложения
- Readme текстовый файл содержит информацию для входа в админку сайта
Пояснения по запуску программы
Запускаем Visual Studio Code, открываем в нем проект, вводим в терминале cd NewspaperWeb и вводим команду - python manage.py runserver. Вот и весь запуск.
admin