概要Djangoで、ウェブサイトの設定をモデルで管理していきます。name="description>"、ウェブサイトの管理者名やメールアドレスをエンドユーザーが簡単に設定できるようにしたいとしましょう。Djangoプロジェクト全体の設定やウェブサイトのグローバルな設定は、settings.pyで管理するのが一般的なので、次のように書けます。'PythonやDjango等についてのメモブログです。'narito'テンプレートに直接書くよりも、このように書いておくほうが上書きがしやすいでしょう。途中からこれらの内容を変えようと思うとDjangoプロジェクトの再起動が必要で、もっと手軽な方法が好まれることもあります。理想としては、admin管理サイト等で簡単に設定できれば良さそうです。そのためには、ウェブサイト全体の設定を表すモデルをどうやって作るかを考えることになります。sitesフレームワークを使うDjangoに付属しているsitesフレームワークを導入すると、1つのウェブサイトに1つのSiteデータが割り当てられます。これとOneToOneで紐づくSiteDetailのようなモデルを作ることで、そのウェブサイト全体の設定を表すモデルが作れます。sitesフレームワークを使うための準備が少し必要です。settings.pyに追記します。サイトマップフレームワークで使う変数です。1そして、モデルを定義します。フィールドは好きに追加したり減らしたりしてください。self.authorこれでSiteDetailを作ればそれで話は済むのですが、幾つか手間をかければもう少し扱いやすくなります。初期データとして投入するsitesフレームワークで作成されるSiteデータは、migrate後に自動で作られます。SiteDetailもmigrate後に一緒に作ると便利です。これをしておくと必ずSiteDetailデータも作られるので、SiteDetailがまだ作られていない場合の処理を考える必要がなくなります。Djangoで、初期データの投入でも紹介した方法です。SiteDetail.objects.get_or_create(site=site)これで、migrate後にSiteDetailも作られることが保証されました。models.pyに書いていますが、他の場所でも良いです。サイトフレームワークでは、management.pyに初期データ作成用の関数を定義しています。他には、signals.pyのようなファイルも見かけます。request.siteでアクセスするsettings.pyを編集します。これを足した]django.contrib.sites.middleware.CurrentSiteMiddlewareは、requestオブジェクトのsite属性にSiteモデルインスタンスを設定してくれます。request.siteでSiteモデルインスタンスが、request.site.sitedetailでSiteDetailモデルインスタンスが取得できます。}}のように書けます。管理画面でインライン表示SiteとSiteDetailは1対1で紐づいているので、管理画面では同時に編集できたほうがよさそうです。admin.pyを次のようにします。こんな感じで、SiteとSiteDetailが編集できるようになります。PostsDjangoで、初期データの投入データベースに予めデータを用意しておきたい、という場合があります。ロジック上必要な初期データや、テスト用のデータ等がそれです。今回は、Djangoで初期データを投入する方法を紹介していきます。週間前いつも大変参考にさせていただいております。定義するためのmodels.pyを、プロジェクトフォルダ/アプリケーションフォルダに新たに"sites"というフォルダを作り、そこに作成しました。detected」となってしまいます。ヶ月前makemigrationsは、settings.pyのINSTALLED_APPSにあるアプリケーションの、models.pyの内容をもとに行われます。Djangoアプリケーションを作り、そのアプリケーションをINSTALLED_APPSに追加するという作業が必要です。startappで適当なアプリケーションをつくり、そこで作られたmodels.pyにSiteDetailを定義し、そのアプリケーションををINSTALLED_APPSに追加してください。週間前ありがとうございます。解決しました!幾つかの方法で、ブログの更新を受け取れます。