На странице представлен фрагмент
Реши любую задачу с помощью нейросети.
Для решения этой задачи нам потребуется использовать следующие компоненты:
1. Модель `Article`, которая будет представлять статью и содержать поля `title`, `content`, `date_published` и `author`.
2. Форма для добавления данных о статье в базу данных, которая будет основана на модели `Article`.
3. Представление, которое будет обрабатывать данные из формы и сохранять их в базе данных.
Вот шаги решения:
1. Создайте модель `Article` с нужными полями (`title`, `content`, `date_published`, `author`) в файле `models.py`:
“`python
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
date_published = models.DateField()
author = models.CharField(max_length=100)
“`
2. Создайте форму `ArticleForm` в файле `forms.py`, основанную на модели `Article`:
“`python
from django import forms
from .models import Article
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
fields = (‘title’, ‘content’, ‘date_published’, ‘author’)
“`
3. Создайте представление `add_article` для обработки данных из формы и сохранения их в базе данных. В файле `views.py`:
“`python
from django.shortcuts import render, redirect
from .forms import ArticleForm
def add_article(request):
if request.method == ‘POST’:
form = ArticleForm(request.POST)
if form.is_valid():
form.save()
return redirect(‘articles:list’)
else:
form = ArticleForm()
return render(request, ‘add_article.html’, {‘form’: form})
“`
4. Создайте шаблон `add_article.html`, который будет содержать форму для добавления статьи:
“`html
“`
5. Настройте URL-маршрутизацию в файле `urls.py` для представления `add_article`:
“`python
from django.urls import path
from .views import add_article
app_name = ‘articles’
urlpatterns = [
path(‘add/’, add_article, name=’add’),
# …
]
“`
Теперь, при переходе на страницу `/articles/add/`, вы увидите форму для добавления данных о статье. После заполнения формы и отправки ее, данные будут сохранены в базе данных и пользователь будет перенаправлен на страницу со списком статей.