无法在我的 django-site 中登录和注册

Can't login and sign up in my django-site

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

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

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

#!/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 数据库添加到设置文件中。迁移后我在其中找到 django_site table:

-- 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);

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

SITE_ID=1

然后 运行 命令:

python manage.py migrate

如果这不起作用:

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

python manage.py migrate sites
python manage.py migrate

由于迁移文件夹为空而出现这种错误。

您需要运行:

python manage.py makemigrations

python manage.py migrate

希望你的问题得到解决

如果不行:

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