diadia

興味があることをやってみる。自分のメモを残しておきます。

Django

djangoのcontextをjavascriptに渡す際に困る場合がある件

大した内容ではないので問題点と対処法を軽く書く。 djangoのcontextに格納したデータをjavascriptにわたす方法 最初にviewにてデータをcontextに格納する テンプレートにてjavascriptを走らせ、contextのデータを受け取る def example(self, request, *args…

Djangoのformをより良く見せるために(改訂版)

Djangoにおいてformウィジェットの理解を深めない限り、forms.ModelFormやforms.Formの利用したとて、フォームを使った画面が残念な結果になってしまう。 見た目の良いフォーム画面を作るには htmlファイルを自ら作成して好みのformを作成する ModelFormやFo…

django ページネーションについて(改訂版)

ページネーションについて ページネーションは一覧表示させるオブジェクトを1ページ内にどれだけ分割して表示させるか。それに関わる技術のことのようだ。 関連ドキュメント ページネーション | Django ドキュメント | Django メモ djangoにおけるページネ…

cdnでvuetifyを使うために

軽く要点を残す。 djangoでincludeを使ってコンポーネント化できたのでテンプレートの見通しが良くなった。 cdnを使ってコンポーネント化するとvuecliを入れる前にどんな感じでvuetifyや単一ファイルコンポーネントが使えるか確認できる。(もちろん全く同じ…

nginxで403が返されるときに対応したこと

サーバー上に新しくディレクトリを作成し、そこを起点にgithubからpullを行いデプロイした際にうまく作動しなかった。 環境 centos7 nginx porstgresql django 症状: home画面のhtmlはサーバーから配信される。 home画面の静的ファイルの配信がうまく行って…

fabricでデプロイするために得られた知見

まずfabricでできることはなにか? fabricでできることはshellスクリプトでもできる。シェルスクリプトが書ければfabricをあえて学習する必要ないと思われるが、fabricを使うのはpythonを使うので学習コストが低いし、pythonで書くのでコードの見通しが良く…

django vueを追加する

MPAでvueを使いたい。。。 色んな方法で実現できると分かった。 cdnを使う方法 vue cliを使う方法 vue cliを使わないで行う方法 最終的にはvue cliを使って構築するのがわかりやすいと感じた。cdnはもちろんかんたんだけれどもvuetifyを組み合わせて使う方法…

constants.pyを設けるメリット

djangoでconstants.pyを設けるメリット views.pyやurls.pyまたテストにおいてハードコーディングが少なくなる。 urls.pyにおいてviewネームを変更するとviews.pyの該当するreversやreverse_lazyのハードコーディング部分を探して変更する必要が出てくる。 し…

Django Test retrofitが送信するデータを再現する

内容 djangoの単体テストを実装する際にAndroid端末が送信するデータ形式を再現できなければ、単体テストの効果が得られない。 したがって最初にretrofitのpostメソッドの形式を確認し、それをそれぞれどのようにdjango(python)で再現すればよいかをメモして…

Seleniumを使ったテストのメモ

実装の際に困ったこと django.test.LiveServerTestCaseを使う環境を把握できていなかった。 ヘッドレスモードを使う場合にはオプションに--window-sizeをつけなければならないこと。 前提 ChromeDriverを使ってseleniumを実行する 準備 seleniumをインストー…

djnago test ModelFormにForeignKeyが含まれる場合のテスト

例えばItemモデルにCategoryというForeignKeyが含まれているとする。 その上ForeignKeyオブジェクトから選択させる方式でItemオブジェクトを生成している。 Itemオブジェクト生成のためにItemModelFormを作成すると以下のような感じになる。 class ItemModel…

DRFとretrofitの関係(Bodyに関して)

話したいこと drfのrequest.dataの内容はfieldかbodyかで違いが出る話をしたい。 django rest frameworkを使ってアンドロイドからデータを受け取る場合にはrequest.dataを使う。そしてこのrequest.dataの内容がretrofitのインターフェースメソッドの記述の仕…

Django シグナル POST_SAVEのupdate_fieldsをどう使うか

シグナルpost_saveのupdate_fieldsの用途 例えばこんな時に使いたい時にupdate_fieldsが役に立つ。 class Profile(models.Model): user = models.ForeignKey(User, on_delete=models.PROTECT, null=True) adm0 = models.CharField(max_length=15, default="J…

Djangoのテストを実装

分かったこと djangoでテストする項目がわかった。 どんな感じでdjangoのテストを書くのか分かった。 djangoのテストはどんな種類か フレームワークの種類によってTestが準備されていることが分かった 分かったことを軽くまとめる ふわっと理解する テストは…

GeoJsonデータをGoogle Mapにレンダリングする

コンテンツ GeoJsonを有効利用したいけど解決策はあるか? インストール 具体的な使用イメージ 色を変える 1. GeoJsonを有効利用したいけど解決策はあるか? GeoDjangoを使う場合にgeometry型のデータをGeoJsonとして出力できる。 以下のように簡単に。。。 fr…

django leaflet の使い方メモ

django leafletはブラウザ上でgeo系のデータをマップに描画するものである。 特徴はjavascriptを一切書かずにOSMをブラウザ上に表示したり、geoデータをマッピングすることができる。 スマホ等にアプリを通じて描画する方法はGoogle Maps Platformを使って実…

geodjango実装メモ(修正版)

コンテンツ PointField等のGeo系特有のFieldを使うには? admin(管理ページ)でGeoデータを編集するためには? geometry型のデータをどのように画面に表示するか? django leafletの使い方 半径10km以内のpointのみを表示するにはどうすれば実現できるか? model…

django ManyToManyFieldを含むオブジェクトの操作

内容 ManyToManyFieldを含むモデルクラスオブジェクトの生成方法は3通りある。 確認した方法を記録しておく。 復習 ManyToManyFieldを含むクラスオブジェクトを生成する 1. 復習 そもそもオブジェクトの生成法は?? 基本的にオブジェクトの生成は、createメ…

効率よく開発を進めるために。DRFとAndroid(Kotlin)を前提に

どこに注意してコーディングをすすめるべきか。 一番重要な要素は、Androidアプリの各画面でどのような情報が必要か明らかにすることである。 Djangoにおいて必要な情報を制限なしに出力する事ができる。したがってKotlinがボトルネックとなる。そのためAndr…

djangoにRESTAPI(DRF)を実装する まとめ

内容 公式ドキュメント DRFの基本的な知識 DRFの関連記事 1. 公式ドキュメント 公式ドキュメント:Home - Django REST framework 2. DRFの基本的な知識 DRFはAPIを扱うフレームワーク djangoがwebフレームワークに対してdjango rest framework(DRF)はrestful…

Generic Foreign Keyで使われるContent TypeのIDを取得する

Content TypeのIDを取得したいと思った経緯 Generic Foreign Keyを使ってwebアプリケーションの通知機能を実装した。 詳しくは、各モデルのインスタンスが生成されるたびに、シグナルを通じて、通知モデルのインスタンスが生成される。 そしてこの通知モデル…

DRFでGeneric ForeignKey を扱う

GenericForeignKeyの扱い方はDRFドキュメントにある Serializer relations - Django REST framework このドキュメントの解釈を行う。自分が作った例は時間があれば、Githubにあげておく。 class TaggedItem(models.Model): """ Tags arbitrary model instanc…

DRFでForeign Keyの値を参照するやり方

参考 Django REST Framework メモ ::ForeignKeyでつながっている別モデルをくっつけてひとつのJSONとしてWebAPI出力する - Qiita python - Retrieving a Foreign Key value with django-rest-framework serializers - Stack Overflow とりあえず後で試す。

Django Rest FrameworkにRetrofitで送信する(multipart編)

やりたいこと django rest frameworkをバックエンドにAndroid端末からデータを送信する。その結果、特定のModelのインスタンスを生成する。 条件: 特定のModelは、ImageFieldを含むクラスである。 特定のModelインスタンスを生成するためにmultipart通信を…

SublimeText3の環境設定

djangoの環境を整える https://pyphilly.org/my-sublime-text-3-setup-pythondjango-development/ ターミナルからsublコマンドでsublime text3を開く sublime text3 には、/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl が存在する。 こ…

django-rest-authで"detail": "Authentication credentials were not provided."が返される時

参考 Django Rest Framework - Authentication credentials were not provided - Article - Python Decompiler Online エラーメッセージ {"detail": "Authentication credentials were not provided."} エラーに出くわした状況 rest-authのエンドポイント/re…

DRF PATCHの実装方法

参考 Retrofit 2 — How to Update Objects on the Server (PUT vs. PATCH) How to make a PATCH request using DJANGO REST framework - Stack Overflow Serializers - Django REST framework まずPATCHとは パッチはインスタンスの更新を行うHTTPプロトコル…

DRF tokenからuserオブジェクトを取得する

userオブジェクトを取得する道筋 例えばandroidの画面にuserのプロフィールを表示したいとする。そのためには、userオブジェクトが必要だ。 どの様にすればUserオブジェクトが取得できるのか。 TokenAuthenticationを採用している場合にはユーザーに紐付いた…

curlコマンドについて

まず以下のコマンドを理解する curl -X GET http://127.0.0.1:8000/api/example/ -H 'Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b' これの意味を調べる。 参考: https://www.django-rest-framework.org/api-guide/authentication/#toke…

DRF POSTメソッドのデータの取り扱いについて

どうデータを受け取るか POSTメソッドを伴うエンドポイントがあるとして、weアプリケーションはどの様にデータを受け取ればよいのか。 Djangoの機能で処理する方法 Djangoと同じ様にデータを受け取る方法がある。 つまりself.request.POSTの戻り値にPOSTメソ…