无法在我的django网站登录和注册

时间:2018-03-23 23:17:21

标签: python django heroku python-3.6 django-2.0

在heroku上部署后,我在尝试登录帐户时遇到以下问题:

relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...

bin目录中的所有文件在标题中包含以下行:

#!/home/far/git/django_site.git/Django_work/django_structure/bin/python

完整日志:

ProgrammingError at /accounts/login/

relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
                                                         ^

Request Method:     GET
Request URL:    https://stripe-like.herokuapp.com/accounts/login/
Django Version:     2.0.3
Exception Type:     ProgrammingError
Exception Value:    

relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
                                                         ^

Exception Location:     /app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py in _execute, line 85
Python Executable:  /app/.heroku/python/bin/python
Python Version:     3.6.4
Python Path:    

['/app',
'/app/django_structure/src',
'/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python36.zip',
'/app/.heroku/python/lib/python3.6',
'/app/.heroku/python/lib/python3.6/lib-dynload',
'/app/.heroku/python/lib/python3.6/site-packages']

使用django.sites(SITE_ID = 1)并没有导致变化。即使在添加SITE_ADD = 1行之后,也不会发生迁移,从而导致错误。

更新

删除db.sqlite3后,我将postgresql db添加到设置文件中。我在迁移后找到了django_site表:

-- Table: public.django_site

-- DROP TABLE public.django_site;

CREATE TABLE public.django_site
(
id integer NOT NULL DEFAULT nextval('django_site_id_seq'::regclass),
domain character varying(100) NOT NULL,
name character varying(50) NOT NULL,
CONSTRAINT django_site_pkey PRIMARY KEY (id),
CONSTRAINT django_site_domain_a2e37b91_uniq UNIQUE (domain)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.django_site
OWNER TO joe;

-- Index: public.django_site_domain_a2e37b91_like

-- DROP INDEX public.django_site_domain_a2e37b91_like;

CREATE INDEX django_site_domain_a2e37b91_like
ON public.django_site
USING btree
(domain COLLATE pg_catalog."default" varchar_pattern_ops);

2 个答案:

答案 0 :(得分:0)

您需要将SITE_ID添加到 settings.py 中,例如

SITE_ID=1

然后运行命令:

python manage.py migrate

如果这不起作用:

尝试在任何其他迁移之前手动迁移网站应用:

python manage.py migrate sites
python manage.py migrate

答案 1 :(得分:0)

由于空迁移文件夹而发生此类错误。

您需要运行:

  

python manage.py makemigrations

     

python manage.py migrate

我希望你的问题能够得到解决。

如果不起作用:

然后从迁移文件夹中手动删除所有.pyc文件。并删除数据库。然后创建数据库。并运行makemigrations和migrate命令。