我在django 1.9中很新,我正在尝试制作应用,但我遇到了这个错误,我不知道如何解决它。这是我的错误和代码。 错误:
IntegrityError at /blogapp//post/
NOT NULL constraint failed: blogapp_blog.user_id
在models.py中:
from django.db import models
from django.conf import settings
from django.contrib.auth.models import User
class Blog(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
title = models.CharField(max_length=50)
content = models.CharField(max_length=99999)
date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.title
在views.py中:
def post(request):
form = BlogText()
if request.method == 'POST':
form = BlogText(request.POST.copy())
if form.is_valid():
data = form.cleaned_data
title = data['title']
content = data['content']
if not Blog.objects.all().filter(title=title):
blog = Blog.objects.create(title=title,content=content,date=timezone.now())
return render(request,'blogapp/postok.html')
else:
return HttpResponse('The title is used')
else:
form = BlogText()
return render(request,'blogapp/post.html',{'form':form})
我是否需要在views.py
中添加?:
if request.user.is_authenticated():
有人请帮助我。我觉得我真的很擅长这个。
答案 0 :(得分:2)
您收到此错误,因为user_id
不能为null:
NOT NULL约束失败:blogapp_blog.user_id
您还需要添加user
:
blog = Blog.objects.create(title=title, content=content,
date=timezone.now(), user=request.user)
请确保只有logged-in
个用户可以使用login_required
装饰器访问此视图:
@login_required
def post(request):
# your stuff here