2013-10-03 2 views
0

Django와 Heroku를 처음 사용했습니다. 방금 heroku 문서를 따라 프로젝트를 배포했습니다. settings.py의 부분은 다음과 같습니다Django는 heroku에 postgresql 인스턴스를 저장할 수 없습니다.

내가 Heroku가에 & syncdb를 밀어 후
try: 
    userInfo.objects.exists() 
except DatabaseError: 
    user = userInfo() 
else: 
    user = userInfo.objects.filter(email = email) 

    if user: 
     # check if the account is fully registered 

     if user.gymID: 
      return HttpResponse(content = 'user exist', status = 503) 

user.email = email 
pwmd5 = hashlib.md5(password) 
user.password = pwmd5.hexdigest() 

user.save() 

, 다음과 같은 오류 : models.py registerBasicInfo.py에서

class userInfo(models.Model): 
    """The member information 
    """ 

    email = models.EmailField() 
    password = models.TextField() 
    account = models.CharField() 
    gender = models.CharField() 
    iconID = models.IntegerField() 
    gymID = models.IntegerField() 
    friendsNumber = models.IntegerField() 
    signature = models.CharField() 
    weibo = models.BooleanField() 

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.postgresql_psycopg2', 
    'NAME': 'dfuldndi54p56q', 
    'HOST': 'ec2-54-227-251-13.compute-1.amazonaws.com', 
    'PORT': 5432, 
    'USER': 'pmotmgcaijwixy', 
    'PASSWORD': 'Wp0Gjf66JEC4mRKkvKrF22ptnj' 
    } 
} 

# Parse database configuration from $DATABASE_URL 
import dj_database_url 
DATABASES['default'] = dj_database_url.config() 

부분 발생 :

2013-10-03T01:40:49.936828+00:00 app[web.1]: Internal Server Error: /ios/registerBasicInfo/json 
2013-10-03T01:40:49.936828+00:00 app[web.1]: Traceback (most recent call last): 
2013-10-03T01:40:49.936828+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response 
2013-10-03T01:40:49.936828+00:00 app[web.1]:  response = callback(request, *callback_args, **callback_kwargs) 
2013-10-03T01:40:49.936828+00:00 app[web.1]: File "/app/server/ios/registerBasicInfo.py", line 50, in post 
2013-10-03T01:40:49.936828+00:00 app[web.1]:  user.save() 
2013-10-03T01:40:49.936828+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 546, in save 
2013-10-03T01:40:49.936828+00:00 app[web.1]:  force_update=force_update, update_fields=update_fields) 
2013-10-03T01:40:49.936828+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 650, in save_base 
2013-10-03T01:40:49.936828+00:00 app[web.1]:  result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) 
2013-10-03T01:40:49.937035+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/manager.py", line 215, in _insert 
2013-10-03T01:40:49.937035+00:00 app[web.1]:  return insert_query(self.model, objs, fields, **kwargs) 
2013-10-03T01:40:49.937035+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py", line 1675, in insert_query 
2013-10-03T01:40:49.937035+00:00 app[web.1]:  return query.get_compiler(using=using).execute_sql(return_id) 
2013-10-03T01:40:49.937035+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 937, in execute_sql 
2013-10-03T01:40:49.937035+00:00 app[web.1]:  cursor.execute(sql, params) 
2013-10-03T01:40:49.937035+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/util.py", line 41, in execute 
2013-10-03T01:40:49.937035+00:00 app[web.1]:  return self.cursor.execute(sql, params) 
2013-10-03T01:40:49.937035+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 58, in execute 
2013-10-03T01:40:49.937035+00:00 app[web.1]:  six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) 
2013-10-03T01:40:49.937192+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 54, in execute 
2013-10-03T01:40:49.937192+00:00 app[web.1]:  return self.cursor.execute(query, args) 
2013-10-03T01:40:49.937192+00:00 app[web.1]: DatabaseError: current transaction is aborted, commands ignored until end of transaction block 

어떤 아이디어로 해결할 수 있습니까? 며칠 동안 고생했는데 도와 줘서 고마워!

답변

0

문제가 해결되었습니다. 내 애플 리케이션을위한 모델 테이블을 올바르게 만들지 못했다. 특히, 내 앱을 settings.py의 INSTALLED_APPS에 올바르게 넣지 않았다. 매우 기본적이고 어리석은 문제.

0

업데이트 이와 코드 : 또한

user = userInfo.objects.get_or_create(email=email) 
if user.gymID: 
    return HttpResponse(content = 'user exist', status = 503) 

pwmd5 = hashlib.md5(password) 
user.password = pwmd5.hexdigest() 
user.save() 

, 암호를 md5를 사용하지 않는; 대신 set_password을 사용하십시오.

+0

user = userInfo.objects.get_or_create (email = email)로 시도했지만 동일한 오류가 발생했습니다. – Tate

관련 문제