2017-05-25 60 views
0

首先,我嘗試了所有可以在SO和Google上找到的方法,但都沒有成功,所以在這裏問。Django UnicodeDecode錯誤

我在學習django並正在做一個測試項目。一切都很順利,但創建superuser後,當我試圖登錄到管理面板,它顯示UnicodeDecodeError。我嘗試了幾種方法,但不斷收到錯誤。我在使用python 3的windows 7 32位上使用django 1.11
我創建了一個應用程序students並註冊了該應用程序。然後跑到migrate

學生/ models.py

from django.db import models 

class Students(models.Model): 
    roll = models.IntegerField(primary_key=True) 
    name = models.CharField(max_length=200) 
    dept = models.CharField(max_length=200) 
    inst = models.CharField(max_length=200) 

    def __str__(self): 
     return self.name + "("+ self.dept + ")" 

學生/ views.py

from django.shortcuts import render 
from django.views.generic.base import View 
from students.models import Students 

class StudentListView(View): 
    def get(self,request): 
     students = Students.objects.all() 
     return render(request,'students/index.html',{'students':students}) 

urls.py

from django.conf.urls import url 
from django.contrib import admin 
from students.views import StudentListView 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^students/',StudentListView.as_view()), 
] 

有人可以幫助我解決這個問題?

編輯:
這裏是traceback

(VE) F:\Virtual Environments\VE\djangogirls\myprojects>python manage.py runserver 
Performing system checks... 

System check identified no issues (0 silenced). 
May 25, 2017 - 19:23:58 
Django version 1.11.1, using settings 'myprojects.settings' 
Starting development server at http://127.0.0.1:8000/ 
Quit the server with CTRL-BREAK. 
[25/May/2017 19:23:59] "GET /admin/ HTTP/1.1" 302 0 
Internal Server Error: /admin/login/ 
Traceback (most recent call last): 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\core\handlers\exception.py", lin 
e 41, in inner 
    response = get_response(request) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\core\handlers\base.py", line 217 
, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\core\handlers\base.py", line 215 
, in _get_response 
    response = response.render() 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\response.py", line 107, 
in render 
    self.content = self.rendered_content 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\response.py", line 82, 
in rendered_content 
    template = self.resolve_template(self.template_name) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\response.py", line 64, 
in resolve_template 
    return select_template(template, using=self.using) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\loader.py", line 48, in 
select_template 
    return engine.get_template(template_name) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\backends\django.py", li 
ne 39, in get_template 
    return Template(self.engine.get_template(template_name), self) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\engine.py", line 162, i 
n get_template 
    template, origin = self.find_template(template_name) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\engine.py", line 136, i 
n find_template 
    name, template_dirs=dirs, skip=skip, 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\loaders\base.py", line 
38, in get_template 
    contents = self.get_contents(origin) 
    File "F:\VIRTUA~1\VE\lib\site-packages\django\template\loaders\filesystem.py", 
line 29, in get_contents 
    return fp.read() 
    File "F:\VIRTUA~1\VE\lib\codecs.py", line 321, in decode 
    (result, consumed) = self._buffer_decode(data, self.errors, final) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x98 in position 402714: inv 
alid start byte 
[25/May/2017 19:24:01] "GET /admin/login/?next=/admin/ HTTP/1.1" 500 114793 
+0

@Alasdair我更新了代碼。請看一看。 –

+0

您是否創建了超級用戶使用任何孟加拉名稱或其他?你是如何創建用戶的?嘗試刪除用戶並使用'./manage.py createsuperuser'創建新的超級用戶並重新登錄 – ruddra

+0

@ruddra我使用'python manage.py createsuperuser'命令創建超級用戶,用戶名是英文。 –

回答

1

模型中的文件,並查看文件

# -*- encoding: utf-8 -*- 

from __future__ import unicode_literals 

的頂部添加這些太行,設置海峽方法相同:

def __str__(self): 
    return "(%s)" % self.name 

,重試運行。

+0

進行了更改,但仍得到相同的錯誤。 –

0

5月this幫助。

def __unicode__(self): 
    return u"{} ({})".format(self.name, self.dept) 
+0

仍然不起作用。 –

0

嘗試編碼爲utf-8。

# -*- encoding: utf-8 -*- 
from __future__ import unicode_literals 


def __unicode__(self): 
    return u"{} ({})".format(self.name, self.dept) 

但是,它似乎是一個特定環境問題。

+0

我已經試過這些。 –