67

Python noobは、これが私の最初のプロジェクトであるため、不慣れなことをお許しください。

アプリで[ログアウト]をクリックするまで、サイトは非常にうまく機能していました。その後、Webサイトで次のエラーが発生します:DoesNotExist at /login/サイトマッチングクエリが存在しません。

どこでも検索しましたが、サイトフレームワーク、SITE_IDなどの設定に関する唯一の解決策があります。コンピューター上のこれらの項目は問題ないと思いますが、確認に役立つウォークスルー/ガイドが見つかりません。

誰かが問題が何であるか、そしてそれを修正する方法を教えてもらえますか?よろしくお願いします:3

 DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/home/dotcloud/nhs.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
4

7 に答える 7

163

データベースにサイトが定義されておらず、djangoがそれを参照したい場合は、サイトを作成する必要があります。

からpython manage.py shell

from django.contrib.sites.models import Site
new_site = Site.objects.create(domain='foo.com', name='foo.com')
print (new_site.id)

次に、settings.pyでそのサイトIDをSITE_IDに設定します

于 2012-08-05T05:45:18.260 に答える
34

テーブルには、(の内部で)に設定されているのと同じ値(デフォルトでは)django_siteと同じ値の行が含まれている必要があります。id1SITE_IDsettings.py

于 2013-01-17T21:49:05.317 に答える
7

SITE_ID = 1djangoプロジェクトのsettings.pyに追加します。

于 2019-02-01T11:22:00.580 に答える
5

Pythonmanage.pyシェルを使用せずに修正しました

manage.py最初は、シェルを使用して上記のコマンドを使用してみました。

from django.contrib.sites.models import Site
new_site = Site.objects.create(domain='foo.com', name='foo.com')
print(new_site.id)

しかし、それは完全性エラーを出しました

簡単な答えはあなたに追加SITE_ID = 1するsettings.py ことですあなたのサイトIDが何であるかを知りたいなら、実際のデータベースに行き、私はsqlitemanをダウンロードして私のテーブルが何を持っているかを見ました。したがって、テーブルにあるサイトIDはすべて、割り当てられるものです。SITE_ID

これは、get_current探しに行く関数がSITE_IDあり、それがあなたの中に見つからないためですsettings.py

tables
-django_site
--Columns
---id

IDは1、名前はexample.com、ドメインはexample.com

于 2017-12-06T11:31:44.843 に答える
2

新しいサイトを作成するための回答と、そのための参照IDが表示されます。ただし、すでにサイトを持っている場合、または何らかの方法でUIからサイトを削除して再度作成した場合は、IDが増加し続けます。これを解決するには、次のようにIDを取得できます。

python manage.py shell
from django.contrib.sites.models import Site
print(Site.objects.get(name='example.com').id)

ここで取得したIDを取得しますsetting.py。例えば。

SITE_ID = 8

基本的に、yoツアーサイトに対応するテーブルとsettings.pyのIDは一致する必要があります。

于 2018-02-06T07:23:13.607 に答える
1

ここに画像の説明を入力してください

データベースのdjango_siteテーブルでIDをクエリし、Djangosettings.pyで正しいIDを設定します。次に例を示します。SITE_ID = 3

于 2019-04-01T08:55:12.330 に答える
1

settings.pyにSITE_ID=1を追加するのを忘れたようです

于 2020-11-08T05:20:28.710 に答える