Задание
Разработать приложение в соответствие с заданием:
Создайте модель «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. Вот и весь запуск.
Телеграм
-