首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NULL约束失败: forum_thread.title

NULL约束失败: forum_thread.title
EN

Stack Overflow用户
提问于 2020-12-07 09:40:55
回答 2查看 41关注 0票数 0

我最近学习了Django并想做一些项目,我想让它成为一个论坛网站,但是当我在做一个讨论论坛时,当我登录并发布数据时,我会得到以下错误:

NULL约束失败: forum_thread.title

models.py

代码语言:javascript
复制
from django.db import models
from django.utils.timezone import now
from django.contrib.auth.models import User
from datetime import datetime 

class Thread(models.Model):
    sno = models.AutoField(primary_key=True)
    title = models.CharField(max_length=255)
    slug = models.SlugField(max_length=255)
    category = models.ForeignKey('category', related_name="Thread", on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    description = models.TextField()
    timestamp = models.DateTimeField(default=datetime.now, blank=True)

    def __str__(self):
        return self.title

class Category(models.Model):
    sno = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100)
    description = models.TextField()
    timestamp = models.DateTimeField(default=datetime.now, blank=True)

    class Meta:
        verbose_name_plural = "Categories"

views.py

代码语言:javascript
复制
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages
from .models import Thread, Category

def addThread(request):
    if request.method == "POST":
        thread_title = request.POST.get('threadtitle')
        thread_slug = request.POST.get('threadslug')    
        thread_category = request.POST.get('threadcategory')    
        thread_description = request.POST.get('threaddescription') 
        user = request.user  
        thread = Thread(title = thread_title, slug = thread_slug, category=thread_category, 
        description = thread_description, user = user) 
        thread.save() 
        messages.success(request, 'thread added successfully')
    return redirect('home')   
EN

回答 2

Stack Overflow用户

发布于 2020-12-07 09:48:15

您可以简单地更改函数,如def str(self):返回self.title

代码语言:javascript
复制
def __str__(self):
    if self.name:
        return self.title
    return 'Untitled
票数 0
EN

Stack Overflow用户

发布于 2020-12-07 12:07:48

根据Thread模型,数据库中的标题不能为空。因此,确保HTML是必需的,并且request.POST.get('threadtitle')是存在的,并且有一个值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65179272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档