Django

Django3系のORMでSQLのEXISTS句を使う

この記事は、 JSL(日本システム技研) Advent Calendar 2020 - Qiita 12/3の記事です。 以前、SQLをDjangoのQuerySet APIでどう実装するのかを書きました。 SQLのSELECT文を、DjangoのQuerySet APIで書いてみた - メモ的な思考的な SQLのINSERT, UPDATE文を、…

django-datatables-viewによるServer-side processingで、DataTable向けのクエリパラメータを追加する

django-datatables-viewによるServer-side processingで、DataTable向けのクエリパラメータを追加しようと考えた時に詰まったことがあったため、メモを残します。 目次 環境 やりたいこと 対応 フロントエンド バックエンド ソースコード 環境 Python 3.8 Dj…

django-datatables-viewによるServer-side processingで、フォームの入力値に基づいてDataTableの絞り込みを行う

django-datatables-viewで、フォームの入力値に基づいてDataTableの絞り込みを行おうと考えた時に詰まったことがあったため、メモを残します。 目次 環境 DataTableのSearchについて やりたいこと 実装 フロントエンド バックエンド 参考:Search機能との連…

django-datatables-viewによるServer-side processingで、モデルの複数列を結合して表示する

django-datatables-viewで、モデルの複数列を結合して表示しようと考えた時に詰まったことがあったため、メモを残します。 目次 環境 やりたいこと エラーとなる方法 動作する方法 ソースコード 環境 Python 3.8 Django 3.1.2 django-datatables-view 1.19.1…

django-datatables-viewによるServer-side processingで、色々なソートを試してみた

ライブラリ django-datatables-view を使ってjQuery DataTableのServer Side Processing を行った際、ソートを実装することがありました。 ただ、ソートを実装しようとしたところ詰まったことがあったため、メモを残します。 目次 環境 ソートを意識しない時…

django-datatables-viewによるServer-side processingで、モデルの外部キーの項目を表示する

バックエンドがDjangoの環境にて、jQuery DataTable を使う機会がありました。 DataTables | Table plug-in for jQuery データ量がそれなりにあったので、DataTableのServer Side Processingを使いました。 DataTables example - Server-side processing Dja…

Django REST Framework + jQuery + S3で画像ファイルアップローダーを作った時のメモ

Django REST Framework + jQuery + S3で画像ファイルアップローダーを作る機会がありました。 その中で色々と考えたことをメモに残します。 なお、実装の詳細は以下となります。 thinkAmi-sandbox/image_uploader_by_drf_jquery_s3 目次 環境 仕様など 画面…

Django REST FrameworkのDEFAULT_PARSER_CLASSESの初期値について

Django REST Frameworkでは、 DEFAULT_PARSER_CLASSES の設定により、グローバルで使われるParserが決まります。 Parsers - Django REST framework ただ、その初期値をうっかり忘れていたので、メモを残します。 目次 環境 うっかりしていたこと 動作確認 ア…

Djangoのmodels.ForeignKeyにおけるrelated_nameとrelated_query_nameについて調べてみた

最近、同僚の @qtatsu に「models.ForeignKeyのrelated_nameに + を指定すると逆引き不可にできる」ということを教わって、そういえばこのあたりを理解してないなと思って調べた時のメモです。 目次 環境 models.ForeignKeyにおけるrelated_nameについて rel…

Django REST Frameworkで、 django-rulesを使ってみた

前回、Djangoで django-rules を使ってみました。 django-rulesを使って、オブジェクトレベルの認可判定をViewとテンプレートでそれぞれ実装してみた - メモ的な思考的な READMEには、Django REST Framework(以降、DRF)でも、 django-rulesが使えるとの記述…

django-rulesを使って、オブジェクトレベルの認可判定をViewとテンプレートでそれぞれ実装してみた

Djangoには認可機能が標準で用意されています。 ただ、標準の認可機能の場合、モデルごとの認可判定は可能な一方で、オブジェクトごとの認可判定ができないようです。 Django のパーミッションフレームワークはオブジェクトパーミッション基盤を持っています…

Django + django-rules + 独自Userモデルで、has_permテンプレートタグを使うときの注意点

Djangoには標準で認可(Permission)の仕組みがあります。 ただ、Django標準の認可はモデルレベルです。オブジェクトレベルは Django のパーミッションフレームワークはオブジェクトパーミッション基盤を持っていますが、コアには実装されていません。 https:/…

ついカッとなって、飲み会座席のくじ引きアプリを作った話

この記事は、 JSL (日本システム技研) Advent Calendar 2019 - Qiita 12/2の記事です。 昨年同様、今年もJSLメンバーによるアドベントカレンダーをお届けします。 今回の記事は、ついカッとなって作成したアプリについて、ゆるく書いていきます。 目次 作っ…

DjangoのListViewで、対象データがない場合は404ページを表示する

DjangoでListViewを使う場合、デフォルトではモデルにデータがない時は HTTP200 で、データがない状態で表示されます。 ただ、モデルにデータがない場合に HTTP404 を表示したい時はどうするか、調べたことをメモしておきます。 目次 環境 調査 allow_empty=…

LaravelでCRUDのあるToDoアプリを作ってみた

Laravelを理解するために、CRUDのあるToDoアプリを作ってみました。 そこで、後で思い出しやすいよう、慣れているDjangoでの作り方も併記する形で、メモを残しておきます。 目次 環境 プロジェクトの作成 モデルの作成 テーブル定義 モデルとマイグレーショ…

DjangoCongress JP 2019 に参加 & 発表しました #djangocongress

5/18に開催された、DjangoCongress JP 2019に参加 & 発表しました。 DjangoCongress JP 2019 昨年同様、開催場所はサイボウズ株式会社の東京オフィスでした。 東京オフィス アクセスマップ | サイボウズ株式会社 今年も良い感じの雰囲気でした。 自分の発表…

Windows10 + pyinstallerで、Djangoをexe化して配布可能にしてみた

最近、Windows10 + pyinstallerで、 WindowsでDjangoアプリを開発 開発したDjangoアプリを、別のWindows端末に配布 別のWindows端末にて、Djangoアプリを実行 をしました。 pyinstallerのWikiに方法が記載されていますが、いろいろとハマったため、メモを残…

Python3.4 & Django1.8な個人アプリを、Python3.7 & Django 2.1 へとアップデートした

以前、食べたリンゴの割合をグラフ化するHerokuアプリを作りました。 Python + Django + Highcharts + Herokuで食べたリンゴの割合をグラフ化してみた - メモ的な思考的な Python3.4 & Django1.8な環境で作成した2015年以降、食べたりんごの種類を記載してい…

DjangoのModelのFieldのオプション null と blank の違いについて

DjangoにてDBのNOT NULL 制約を外したい場合、nullとblankのどちらを使えばよいのか忘れることがあるため、メモしておきます。 目次 環境 違い 確認 Model マイグレーションファイルの作成 sqlmigrateで、発行されるSQLを確認 マイグレーションファイルを適…

Django2.0のプロジェクトのurls.pyにおける、include()での引数namespaceについて調べてみた

Django 2.0にて、プロジェクトの urls.py を from django.urls import path, include urlpatterns = [ path('old/', include('myapp.urls', namespace='old')), ... ] アプリの urls.py を from django.urls import path from django.views.generic import T…

Djangoで、アプリ用ディレクトリを作成し、INSTALLED_APPSにAppConfigのサブクラスを設定してみた

Djangoでアプリの数が増えると見づらいかなと思い、アプリ用ディレクトリを作成してみました。 その時に INSTALLED_APPS に AppConfig を指定する場合で少し悩んだため、メモを残します。 なお、こんな感じでプロジェクトとアプリを作成しました。 # Django…

Raspberry Pi 2 Model B + docker-compose上に、Django + PostgreSQLなアプリをデプロイしてみた

Raspberry Pi 2 Model Bを使ってDjangoアプリを作ろうかなと思いました。 環境構築をどうするかと考えたところ、RaspbianでDockerを動かせると知りました。 Docker comes to Raspberry Pi - Raspberry Pi Dockerが動くならdocker-composeもいけるのではと思…

DjangoCongress JP 2018 に参加 & 発表しました #djangocongress

5/19に開催された、DjangoCongress JP 2018に参加 & 発表しました。 DjangoCongress JP 2018 場所は、サイボウズ株式会社の東京オフィスでした。 東京オフィス アクセスマップ | サイボウズ株式会社 ここが日本橋か pic.twitter.com/FiTUXSpXn1— thinkAmi (@…

「現場で使える 基礎Django」を読みました #技術書典

最近Djangoを使う人も増えてきているようで、自分がさわり始めた頃に比べれば、分からないことことでも探せば出てくるようになりました。 とはいえ、Djangoの全体像をさらっとながめられるようなものがあまりなく、自分のDjango自体の理解が正しいのか悩んで…

Django + django-localflavorで、フォームの郵便番号入力や都道府県選択を作成してみた

Djangoのフォームで 郵便番号入力 都道府県選択 を簡単に作る方法を調べたところ、 django-localflavor がありました。 django/django-localflavor: Country-specific Django helpers, formerly of contrib fame The “local flavor” app — django-localflavo…

Django + ReportLabをHerokuで動かしてpdfを表示する

最近、Pythonでpdfを作成する機会がありました。 Pythonのpdf作成ライブラリには何があるのかを調べたところ、ReportLabが一番有名そうでした。 ReportLab - Content to PDF Solutions rptlab / reportlab — Bitbucket また、DjangoのドキュメントにもReport…

HerokuにDjangoアプリをデプロイするとcollectstaticが自動実行される

HerokuにDjangoアプリをデプロイしたところ、 remote: ! Error while running '$ python manage.py collectstatic --noinput'. remote: See traceback above for details. remote: remote: You may need to update application code to resolve this error. …

DjangoをHeroku + uWSGIで動かしてみた

最近uWSGIにふれたため、HerokuでuWSGIを動かしてみようと思いました。 ただ、Herokuのチュートリアルではgunicornを動かしていました。 Getting Started on Heroku with Python | Heroku Dev Center HerokuでuWSGIで動かす方法を調べたところ、uWSGIのドキ…

DjangoにDjangoミドルウェアとWSGIミドルウェアを組み込んでみた

この記事は「Django Advent Calendar 2016 - Qiita」の13日目の記事です。 Djangoにはミドルウェアというフレームワークがあるため、リクエスト/レスポンス処理をフックして処理を追加できます。 Middleware | Django documentation | Django また、Djangoは…

Django + Handsontable.jsを使って、Excel風な入力画面を作ってみた

この記事は「Django Advent Calendar 2016 - Qiita」の11日目の記事です。 最近、DjangoでExcel風な入力画面を持つWebアプリを作る機会がありました。 何か良い方法がないかを調べたところ、jQueryへの依存がないJavaScriptライブラリHandsontableを知りまし…