1. 템플릿 유형 오류:
오류 원인: 반환:
class UserProfile(models.Model):
user=models.OneToOneField(User,blank=True,null=True,관련_name='user',verbose_name=_(u'user')) company_name=models.CharField(u ' 기업(또는 에이전트) 이름', max_length=30, 기본값='알 수 없음') #기업 이름 product=models.ForeignKey(Product, 공백=True,null=True,verbose_name=_( u 'product '))#클래스 메타:
Verbose_name = _ (u 'configuration')
VERBOSE_NAME_PLURAL = _ (u '사용자 구성')
def __unicode__(self):
[여기]_(u'%(user_name)s') % {'user_name':self.user.username}
여기에 추가하세요. 그냥 Return 키를 누르세요.
2. URL 관련 오류
, 정적 파일에 접근할 수 없는 스타일 등 표시할 수 없음
CSS 스타일이 나오지 않습니다. 한 시간 넘게 고생한 끝에 urlpatterns가 다음과 같이 작성된 것으로 나타났습니다.
urlpatterns = 패턴(' ',
( r'^ $','login.msg.index'), #홈페이지
)
#로그인 등록
urlpatterns = 패턴('',
(r'^accounts/register/$','login.msg.register_page'), #등록
(r '^accounts/login/$', 'login.msg.login'), #로그인
(r'^accounts/logout/$','django.contrib.auth.views.logout',{ 'next_page':'/'}) , #Django는 로그아웃 양식 처리 전용 로그아웃
기능을 제공합니다(r'^accounts/register/success/$','django.views.generic.simple. direct_to_template',{'template':' Registration/register_success.html'}), #등록 성공
)
#admin백엔드 관리
urlpatterns += 패턴('',
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
(r'^admin/ ', include(admin.site.urls )),
)
#정적 파일 액세스
urlpatterns += 패턴('',
( r'^site_media/(?P
.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_SITE}),또한 다음과 같이 썼습니다. [로그인 등록] url 이후 +=가 아니기 때문에 URL 커버리지가 발생하므로 정적 파일을 불러올 수 없고, 홈페이지를 열 수 없습니다.
3. 코딩 오류
, 오류 유형은 다음과 같습니다.
DjangoUnicodeDecodeError /admin/ books/book/
'ascii' 코덱은 위치 0의 바이트 0xe8을 디코딩할 수 없습니다: 서수가 범위(128)에 없습니다.
()
해결책:
python2에서 str 및 unicode 데이터 유형을 혼동합니다.
(0), ascii 대신 실제 인코딩을 사용하는 것이 필요합니다
(1), str->유니코드가 필요한 코드의 경우
import sys
reload(sys)
, Django POST 요청 오류 금지(403) CSRF 확인에 실패했습니다. 요청이 중단되었습니다
'을 추가하세요. middleware.csrf.CsrfResponseMiddleware',
서버 재실행 OK
주요 참조: http://blog.csdn.net/feng88724/article/details/7221449
django1.2.3을 사용하고 있습니다. 세션을 사용할 때 위와 같은 오류가 발생합니다. 이 경우 다음을 주석 처리하십시오.# 'django.middleware.csrf.CsrfViewMiddleware', #이 코드는 세션을 사용할 때
, login:login()이 정확히 1개의 인수(2개 제공)를 취합니다.
함수를 보기 위해 로그인할 때 특히 자주 발생합니다. 그 이유는 로그인 함수 이름과 로그인 모듈 이름이 충돌하기 때문입니다. 예를 들어 로그인 URL은 다음과 같습니다.
(r'^account/login/$', 'login'), #登录
那么,对应的视图函数如下:
def 로그인(요청):
if request.method == "POST":
시도:
사용자 이름 = request.POST .get('사용자 이름')
비밀번호 = request.POST.get('비밀번호')
user = authenticate(사용자 이름=사용자 이름,비밀번호=비밀번호)
if user is None:
if user.is_active:
login(요청,사용자)
return HttpResponse('ok')
그 외:
return HttpResponse('error')
예외 제외,e:
log.error("login:%s" % str(e))
return render_to_response('account/login.html')
当然如果这样写,不要忘记导入:
django.contrib.auth에서 가져오기 인증 , 로그인
这样就坏事了,因为流现了两个login.这就导致了上面的问题,解决办法有两个,
、修改login视图函数의 이름과 对应의 url中。如webLogin
、导入设置:from ..login as _login 这样也行,别忘了都要改过来。
、无法跳转
如,我想登录。然后登录成功后跳转到主页,如上:把上面代码改写成这样
.....
if user.is_active:
로그인(요청,사용자)
HttpResponseRedirect('/') 반환
....
但是却没有实现跳转,如下:
//登录 function _submit(){ var username = $("input[name='username']").val(); var password = $("input[name='password']").val(); if (username == ""){ art.dialog({content: '用户名不能为空',time :1.5}); }else if(password == ""){ art.dialog({content: '密码不能为空',time :1.5}); }else{ $.post('/account/login/',{'username':username,'password':password},function(data){ if (data =='error'){ art.dialog({content: '用户名或密码错误',time :1.5}); } }); } }Query.post( url, [data], [callback], [type] ) :