Я начал учиться Django сегодня, но я застрял в использовании форм. Я создал две формы: /contact
и /blog-new
. Форма на странице контактов работает нормально, но та, что на /blog-new
, перенаправляет меня на домашнюю страницу после нажатия кнопки отправки, и никакая информация не печатается в терминале и не сохраняется в базе данных.
Код на Github
Я ценю, если кто-то может объяснить мне, что я сделал неправильно, так как я не могу понять это. Спасибо!
mysite / blog / forms.py
from django import forms
from .models import BlogPost
class BlogPostModelForm(forms.ModelForm):
class Meta:
model = BlogPost
fields = ['title', 'slug', 'content']
mysite / blog / views.py
from .forms import BlogPostModelForm
def blog_post_create_view(request):
# create objects
# ? use a form
# request.user -> return something
form = BlogPostModelForm(request.POST or None)
if form.is_valid():
print(form.cleaned_data)
form.save()
form = BlogPostModelForm()
template_name = 'form.html'
context = {'form': form}
return render(request, template_name, context)
mysite / blog / models.py
from django.db import models
# Create your models here.
class BlogPost(models.Model):
title = models.TextField()
slug = models.SlugField(unique=True)
content = models.TextField(null=True, blank=True)
mysite / mysite / urls.py
from blog.views import (
blog_post_create_view,
)
urlpatterns = [
..
path('blog-new', blog_post_create_view),
..
]
mysite / templates / form. html
{% extends "base.html" %}
{% block content %}
{% if title %}
<h1>{{ title }}</h1>
{% endif %}
<form method='POST' action='.'> {% csrf_token %}
{{ form.as_p }}
<button type='submit'>Send</button>
</form>
{% endblock %}