Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django完整性错误不为null_Python_Django_Django Models_Django Views_Django Database - Fatal编程技术网

Python Django完整性错误不为null

Python Django完整性错误不为null,python,django,django-models,django-views,django-database,Python,Django,Django Models,Django Views,Django Database,我正在学习django,并试图通过制作自己的网站来进行练习,该网站将用我提交给它的问题来测试我。我得到这个错误,我不知道为什么 IntegrityError at/questions/new/ 非空约束失败:问题\u问题。创建日期\u 我相信这是相关的回溯 Environment: Request Method: POST Request URL: http://127.0.0.1:8000/questions/new/ Django Version: 1.11 Python Versio

我正在学习django,并试图通过制作自己的网站来进行练习,该网站将用我提交给它的问题来测试我。我得到这个错误,我不知道为什么

IntegrityError at/questions/new/
非空约束失败:问题\u问题。创建日期\u

我相信这是相关的回溯

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/questions/new/

Django Version: 1.11
Python Version: 3.5.0
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'bootstrap3',
 'accounts',
 'posts',
 'groups',
 'questions']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  65.                 return self.cursor.execute(sql, params)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
  328.         return Database.Cursor.execute(self, query, params)

The above exception (NOT NULL constraint failed: questions_question.date_created) was the direct cause of the following exception:

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch
  88.         return handler(request, *args, **kwargs)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/views/generic/edit.py" in post
  217.         return super(BaseCreateView, self).post(request, *args, **kwargs)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/views/generic/edit.py" in post
  183.             return self.form_valid(form)

File "/Users/chrismaltez/Desktop/pycharmprojects/UDEMY/test/questions/views.py" in form_valid
  31.         self.object.save()

File "/Users/chrismaltez/Desktop/pycharmprojects/UDEMY/test/questions/models.py" in save
  33.         super().save(*args, **kwargs)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/models/base.py" in save
  806.                        force_update=force_update, update_fields=update_fields)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/models/base.py" in save_base
  836.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/models/base.py" in _save_table
  922.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/models/base.py" in _do_insert
  961.                                using=using, raw=raw)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/models/query.py" in _insert
  1060.         return query.get_compiler(using=using).execute_sql(return_id)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
  1099.                 cursor.execute(sql, params)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  80.             return super(CursorDebugWrapper, self).execute(sql, params)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  65.                 return self.cursor.execute(sql, params)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/utils.py" in __exit__
  94.                 six.reraise(dj_exc_type, dj_exc_value, traceback)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/utils/six.py" in reraise
  685.             raise value.with_traceback(tb)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  65.                 return self.cursor.execute(sql, params)

File "/Users/chrismaltez/anaconda3/envs/SimpleSocialEnv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
  328.         return Database.Cursor.execute(self, query, params)

Exception Type: IntegrityError at /questions/new/
Exception Value: NOT NULL constraint failed: questions_question.date_created

这是我的相关代码:

questions/Views.py

from django.shortcuts import render
from django.views import generic
from django.core.urlresolvers import reverse_lazy
from django.contrib import messages

from . import models
from . import forms


# Create your views here.

class QuestionList(generic.ListView):
    model = models.Question


class QuestionDetail(generic.DetailView):
    model = models.Question

    def get_queryset(self):
        queryset = super().get_queryset()


class CreateQuestion(generic.CreateView):
    model = models.Question
    # form = QuestionForm
    fields = ('question', 'answer')

    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.user = self.request.user
        self.object.save()
        return super().form_valid(form)


class DeleteQuestion(generic.DeleteView):
    model = models.Question
    success_url = reverse_lazy('questions:all')

    def get_queryset(self):
        queryset = super().get_queryset()
        return queryset.filter(user_id=self.request.user.id)

    def delete(self, *args, **kwargs):
        messages.success(self.request, "Question Deleted")
        return super().delete(*args, **kwargs)
这是我的模特

from django.db import models
from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse
User = get_user_model()

import misaka

# Create your models here.
class Quiz(models.Model):
    name = models.CharField(max_length=225)
    intro_text = models.TextField(null=True)
    date_created = models.DateTimeField()
    date_updated = models.DateTimeField(auto_now=True, null=True)


class Question(models.Model):
    user = models.ForeignKey(User, related_name="question", default='')
    quiz = models.ForeignKey(Quiz)
    question = models.TextField(unique=False, default='')
    question_html = models.TextField(default='')
    date_created = models.DateTimeField()
    date_updated = models.DateTimeField(auto_now=True, null=True)
    answer = models.TextField(default='')
    answer_html = models.TextField(unique=False, default='')
    # message = models.TextField(unique=False, default='')
    # message_html = models.TextField(editable=False, default='')

    def __str__(self):
        return self.question

    def save(self, *args, **kwargs):
        self.question_html = misaka.html(self.question)
        super().save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse(
            "questions:single",
            kwargs={
                "username": self.user.username,
                "pk": self.pk
            }
        )

    class Meta:
        # ordering = ["-created_at"]
        unique_together = ["user", "question", "answer", ]



class QuestionAnswer(models.Model):
    question = models.ForeignKey(Question)
    answer = models.TextField(unique=False)
    answer_html = models.TextField()
    correct = models.BooleanField(default=False)
    date_created = models.DateTimeField()
    date_updated = models.DateTimeField(auto_now=True, null=True)

任何帮助都将不胜感激

当您创建一个新的问题中的问题模型时,只提到两个字段。除date_created外,其余所有字段都将为空或默认值。因此,在模型中,列date_create也会发生如下变化:

date_created = models.DateTimeField(auto_now=True, null=True)

因为如果您没有提到null=True,则约束默认值不为null。这就是为什么当您尝试添加时,它会显示完整性错误。

只需在模型问题
date\u created=models.datetime字段(auto\u now=True,null=True)
中这样给出,然后重试。发布您的完整信息traceback@Exprator,完整的回溯已经发布。谢谢Vikas,我做了你的更改,看起来很有效。我的困惑源于这样一个事实:我一直在遵循一个教程,当我这样做时,不需要将auto_now=True,Null=True。它就像我原来的一样是空白的。我怎么知道什么时候添加它,什么时候不添加它?当您向一个表添加值时,除了那些剩余的列之外,所有的列都应该像default或Null=True。好的。谢谢我会进一步调查的。事实证明,我确实必须访问我的大多数模型并添加null=True或default字段。