Я уже видел много сообщений о переполнении стека, но не могу найти никаких проблем с моим кодом, но этот код не сохраняет никаких данных.
models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=50, blank=True)
content = models.CharField(max_length=200, blank=True)
post_date = models.DateTimeField(default=datetime.now, blank=True)
def __str__(self):
return self.title
forms.py
from django.forms import ModelForm
from .models import Post
class PostForm(ModelForm):
class Meta:
model = Post
fields = ['title', 'content', 'post_date']
views.py
from django.shortcuts import render
from django.template import loader
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.http import Http404
from .models import Post
from .forms import PostForm
# Create your views here.
def index(request):
latest_post_list = Post.objects.order_by('-post_date')[:5]
template = loader.get_template('form/index.html')
context = {'latest_post_list':latest_post_list}
return render(request, 'form/index.html', context)
def posts(request, post_id):
post = get_object_or_404(Post, pk=post_id)
return render(request, 'form/posts.html', {'post':post})
def posting(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return HttpResponseRedirect('/')
else:
print(form.errors)
else:
form = PostForm()
return render(request, 'form/posting.html', {'form' : form})
posting. html
<form action="/form/" method="post">
{% csrf_token %}
{{ form }}
<input type='submit' value='Submit'>
</form>
<script src="" async defer></script>
Клянусь, я видел много вопросов по этому поводу, но все же я Я в беде: / Я думал, что form.save в views.py заставит его работать, но нет.