簡體   English   中英

django1.9中發生了IntegrityError

[英]An IntegrityError happened in django1.9

我在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():

有人請幫幫我。 我覺得我真的很不好。

您收到此錯誤,因為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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM