====== django ======
===== 注目ツール =====
Apache ECharts: javascriptベース。美麗。 https://echarts.apache.org/en/index.html
===== djangoメモ =====
django-treebeard: https://django-treebeard.readthedocs.io/en/latest/index.html# コメントなどの階層構造を取り扱う
django-comment-xtd: コメント用のアプリだがpuputと相性悪そう?
DjangoのmodelでUUIDFieldを使う方法: https://django.baby/uuidfield/
【Django】django-summernoteを使ってブログアプリに便利なテキストエディターを構築 https://zerofromlight.com/blogs/detail/51/
puputでhtmlを直接記述 https://monoaso.net/2020/09/25/puput_html_rawcode/
Python Django 入門 (ver.4) https://rinsaka.com/django4/index.html
==== 新規アプリのモジュール ====
* django bootstrap5
* cryspi 5
* allauth
* ajax
* treebeard
* summernote
* social
==== djangoのはじめかた ====
忘れまくるのでメモ
=== 最初の最初 ===
mkdir myproject
cd myproject
djando-admin startproject config .
これは、プロジェクト名とコンフィグディレクトリの名前重複を避けるために、プロジェクトフォルダは明示的にmkdirし、中でstartprojectを呼ぶ。configでconfigフォルダができる。ピリオドを忘れないこと。
次にアプリの作成。プロジェクトルート(myproject直下)にて
mkdir apps
cd apps
django-admin startapp myapp
これは、複数できるかもしれないアプリ群をappsディレクトリ下にまとめるための方法。
ただし、のちのちsettings.pyでのINSTALLED_APPSの記述のために、アプリごとに下準備が必要。
まず、アプリごとに自動生成される"apps.py"の"name"の箇所を、下記のように"apps.myapp"と参照名を変更する。
from django.apps import AppConfig
class MyappConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "apps.myapp" #"apps."を付加
また、アプリの"__init__.py" を下記のように修正する。
from .apps import MyappConfig as myapp # 空ファイルの__init__.pyにこの行を付加
以上の下準備で、INSTALLED_APPSでは以下のように書ける。
# Application definition
INSTALLED_APPS = [
"apps.myapp", # これで参照できる
"django.contrib.admin",
...
=== INSTALLED_APPSについての超大事な話 ===
https://jumpyoshim.hatenablog.com/entry/order-of-installed-apps-with-django-is-important
* INSTALLED_APPS は最初にリストされているアプリケーションのソースコードが優先される
* INSTALLED_APPS は ローカルアプリケーション・サードパーティアプリケーション・Djangoアプリケーション という順番にしたほうがよい
=== bootstrapの適用 ===
下記のモジュールがある
* crispy-bootstrap5 (crispy-formsに依存。勝手にインストールすると思う)
* django-bootstrap5
=== テンプレート修正に際して ===
django-widget-tweak というのを使えば、Formクラス内のwidget属性でhtml要素のclassを指定しなくてよくて、テンプレート内でclassの付与ができる(デフォルトではできない)
=== puput組み込みコメント ===
templates/django_comments_xtd/comment_tree.html line 6