Django models 错误:非空约束失败:posts\u post.author\u id
我正在创建一个博客应用程序,我有一个问题,我在任何地方都找不到答案。我是django的初学者 因此,我的应用程序上有一个页面,用户可以在其中创建新帖子。当我填写区域并按确认时,我得到一个错误Django models 错误:非空约束失败:posts\u post.author\u id,django-models,django-forms,django-views,Django Models,Django Forms,Django Views,我正在创建一个博客应用程序,我有一个问题,我在任何地方都找不到答案。我是django的初学者 因此,我的应用程序上有一个页面,用户可以在其中创建新帖子。当我填写区域并按确认时,我得到一个错误非空约束失败:posts\u post.author\u id。它说异常是我的views.py文件中的form.save() views.py forms.py models.py new-post.html {%extends'posts/base.html%} {%block title%} 新职位 {%
非空约束失败:posts\u post.author\u id
。它说异常是我的views.py
文件中的form.save()
views.py
forms.py
models.py
new-post.html
{%extends'posts/base.html%}
{%block title%}
新职位
{%endblock%}
{%block content%}
换一个新职位
{%csrf_令牌%}
{{form.title}}
{{form.content}}
证实
{{error}}
{%endblock%}
from django.shortcuts import render, redirect
from .models import Post
from .forms import PostForm
# Create your views here.
def index(request):
posts = Post.objects.order_by('created_on')
return render(request, 'posts/list.html', {'title': 'Home page', 'posts': posts})
def about(request):
return render(request, 'posts/about.html', {'title': 'About page'})
def newPost(request):
error = ''
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
else:
error = 'Incorrect form'
form = PostForm()
context = {
'form': form,
'error': error
}
return render(request, 'posts/new-post.html', context)
from .models import Post
from django.forms import ModelForm, TextInput, Textarea
class PostForm(ModelForm):
class Meta:
model = Post
fields = ['title', 'content']
widgets = {
'title': TextInput(attrs={
'class': 'form-control',
'placeholder': 'Enter title...'
}),
'content': Textarea(attrs={
'class': 'form-control',
'placeholder': 'Enter content...'
})
}
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
STATUS = (
(0, 'Draft'),
(1, 'Published')
)
class Post(models.Model):
title = models.CharField(max_length=50)
slug = models.SlugField(max_length=30, unique=True)
author = models.ForeignKey(
User, on_delete=models.CASCADE, related_name='blog_posts', default=None)
content = models.TextField()
updated_on = models.DateTimeField(auto_now=True)
created_on = models.DateTimeField(auto_now_add=True)
status = models.IntegerField(choices=STATUS, default=0)
class Meta:
ordering = ['-created_on']
verbose_name = 'Post'
verbose_name_plural = 'Tasks'
def __str__(self):
return self.title
{% extends 'posts/base.html' %}
{% block title %}
New Post
{% endblock %}
{% block content %}
<h5>Make a new post</h5>
<form method="post">
{% csrf_token %}
{{ form.title }}</br>
{{ form.content }}</br>
<button type="submit" class="btn btn-success">Confirm</button>
<span>{{ error }}</error>
</form>
{% endblock %}