首页 文章

完整性错误和操作错误Django 1.6.6

提问于
浏览
1

我刚刚开始开发Django博客,并且正在关注这个youtube教程 - https://www.youtube.com/watch?v=7rgph8en0Jc&spfreload=1

我正在使用Django 1.6.6 .

  • 每当我尝试在Admin中添加Entry时,我都会收到此错误 . 谢谢你的帮助!

环境:Django版本:1.6.6 Python版本:2.7.8已安装的应用程序:('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions' ,'django.contrib.messages','django.contrib.staticfiles','niceblog','django_markdown')已安装的中间件:('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:
文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ core \ handlers \ base.py”
在get_response 112中.response = wrapped_callback(request,* callback_args,> ** callback_kwargs)包装器450中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ contrib \ admin \ options.py”返回self.admin_site.admin_view(view)(* args,** kwargs)_wrapped_view 99中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ utils \ decorators.py” . = view_func(request,* args,** kwargs)_wrapped_view_func中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ views \ decorators \ cache.py”52. response = view_func(request ,* args,** kwargs)文件“内部198”中的“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ contrib \ admin \ sites.py”返回视图(request,* args,* * kwargs)wrapper 29中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ utils \ decorators.py” . 返回bound_func(* args,** kwargs)文件“C:\ Users _ user desktop \ firstblog \ lib \ site-packages \ django \ utils \ decorators.py“in _wrapped_view 99. response = view_func(request,* args,** kwargs)Fil e“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ utils \ decorators.py”在bound_func 25中返回func(self,* args2,** kwargs2)文件“C:\ Users \内部371中的user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ transaction.py“返回func(* args,** kwargs)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site -packages \ django \ contrib \ admin \ options.py“在add_view 1149中.self.save_model(request,new_object,form,False)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \在save_model 878中的contrib \ admin \ options.py“ . obj.save()文件”保存545中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ base.py” . force_update = force_update,update_fields = update_fields)save_base 573中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ base.py” . 更新= self._save_table(raw,cls) ,force_insert,force_update,using,> update_fields)_save_table 654中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ base.py” . result = self._do_inse rt(cls._base_manager,using,fields,update_pk,raw)_do_insert 687中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ base.py” . using = using ,raw = raw)_insert 232中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ manager.py” . 返回insert_query(self.model,objs,fields,* * kwargs)在insert_query 1514中输入文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ query.py” . return query.get_compiler(using = using).execute_sql(return_id) execute_sql 903中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py”.zoid.execute(sql,params)文件“C:\ Users \执行69中的user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ backends \ util.py“ . 返回super(CursorDebugWrapper,self).execute(sql,params)文件”C:\ Users \ user \ desktop执行53中的\ firstblog \ lib \ site-packages \ django \ db \ backends \ util.py“ . 返回self.cursor.execute(sql,params)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site -packages \ django的\ d b \ utils.py“在退出99. six.reraise(dj_exc_type,dj_exc_value,traceback)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ backends \ util.py“in执行53. return执行452.返回self.cursor.execute(sql,params)文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ backends \ sqlite3 \ base.py” Database.Cursor.execute(self,query,params)异常类型:/ admin / niceblog / entry / add /中的IntegrityError
异常值:niceblog_entry.slug可能不是NULL

  • 每次我尝试在Admin中编辑Entry时,都会抛出此错误

环境:Django版本:1.6.6 Python版本:2.7.8已安装的应用程序:('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions' ,'django.contrib.messages','django.contrib.staticfiles','niceblog','django_markdown')已安装的中间件:('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')回溯:文件“C:\ Users \ user \ desktop \ firstblog \ lib get_response 112中的\ site-packages \ django \ core \ handlers \ base.py“ . response = wrapped_callback(request,* callback_args,** callback_kwargs)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ contrib \ admin \ options.py“在包装器450中 . 返回self.admin_site.admin_view(查看)(* args,** kwargs)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ _jjango \ utils \ decorators.py“在_wrapped_view 99. response = view_func(request,* args,** kwargs)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ views \ decorators \ cache.py“在_wrapped_view_func 52. response = view_func(request,* args,** kwargs)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ contrib \ admin \ sites.py “在内部198.返回视图(请求,* args,** kwargs)文件”C:\ Users \ user \ d _wrapper 29中的esktop \ firstblog \ lib \ site-packages \ django \ utils \ decorators.py“返回bound_func(* args,** kwargs)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ _jjango \ utils \ decorators.py“在_wrapped_view 99. response = view_func(request,* args,** kwargs)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ utils \ decorators .py“in bound_func 25. return func(self,* args2,** kwargs2)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ transaction.py“在内部371中 . return func(* args,** kwargs)在change_view 1255中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ contrib \ admin \ options.py” . form = ModelForm(instance = obj )init 315中的文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ forms \ models.py”.object_data = model_to_dict(instance,opts.fields,opts.exclude)文件“C:在model_to_dict 141中的\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ forms \ models.py“ . data [f.name] = list(f.value_from_object(instance).values_list('pk',f lat = True))文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ query.py”在iter 96中.self._fetch_all()文件“C:\ Users \ _fetch_all 857中的user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ query.py“ . self._result_cache = list(self.iterator())文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ models \ query.py“在iterator 1068中 . 对于self.query.get_compiler中的行(self.db).results_iter():文件”C:\ Users \ user \ desktop \ result_iter 713中的firstblog \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py“ . 对于self.execute_sql(MULTI)中的行:文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site execute_sql 786中的-packages \ django \ db \ models \ sql \ compiler.py“ . cursor.execute(sql,params)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ backends \ util.py“在执行69. return super(CursorDebugWrapper,self).execute(sql,params)文件”C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ backends \ util .py“执行53.返回self.cursor.execute (sql,params)文件“C:\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ utils.py”在出口99. six.reraise(dj_exc_type,dj_exc_value,traceback)文件“C:执行53中的\ Users \ user \ desktop \ firstblog \ lib \ site-packages \ django \ db \ backends \ util.py“ . 返回self.cursor.execute(sql,params)文件”C:\ Users \ user \ desktop执行452中的\ firstblog \ lib \ site-packages \ django \ db \ backends \ sqlite3 \ base.py“返回Database.Cursor.execute(self,query,params)异常类型:/ admin / niceblog / entry /中的OperationalError 2 /异常值:没有这样的表:niceblog_entry_tags

models.py文件--->

class Tag(models.Model):
    slug = models.SlugField(max_length=200, unique=True)

def __unicode__(self):
    return self.slug

class Entry(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    publish = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    tags = models.ManyToManyField(Tag)

    def __unicode__(self):
        return self.title

    class Meta:
        verbose_name = "Blog Entry"
        verbose_name_plural = "Blog Entries"
        ordering = ['-created']

admin.py文件--->

class EntryAdmin(MarkdownModelAdmin):
    list_display = ("title", "created")

admin.site.register(Entry, EntryAdmin) 
admin.site.register(Tag)

1 回答

  • 1

    我猜,在创建表之后添加了Entry.tags . 如果可以将django升级到1.7,那么你可以使用built-in migrations . Firstable将您的应用重置为实际的数据库架构,即删除标签字段,然后:

    # Create initial migrations
    $ python manage.py makemigrations your_app
    # Migrate
    $ python manage.py migrate your_app
    # Add your tags field. Repeat
    $ python manage.py makemigrations your_app
    $ python manage.py migrate your_app
    

    如果你想留在django 1.6,请使用South . 它几乎是一样的:

    # Create initial migrations
    $ python manage.py schemamigration your_app intial --init
    # Migrate
    $ python manage.py migrate your_app --fake
    # Add your tags field. Create migration
    $ python manage.py schemamigration your_app add_tags --auto
    $ python manage.py migrate your_app
    

相关问题