diadia

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

Django

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のテストを実装

分かったこと 基本的にpythonのunuttestを使って実装するイメージをもてばよい。 djangoのテストはほとんどホワイトテストに基づく。つまりdjangoアプリケーションの内部ロジックに基づいたテストを実装する。 Django.test.TestCaseのサブクラスを使ってテス…

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

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

django leaflet の使い方メモ

django leafletはブラウザ上でgeo系のデータをマップに描画するものである。 つまりWebアプリの為に使うものである。 スマホ等にアプリを通じて描画する方法はGoogle Maps Platformを使って実装する。 コンテンツ django leafletのドキュメント django leafl…

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メソ…

django-rest-frameworkのユーザー認証を実現させる

https://www.django-rest-framework.org/api-guide/authentication/ https://blog.sakaki333.com/blog/view/78 はじめに この記事はdjnagoをバックエンドとしてandroidアプリケーションを作成することを前提する。 androidアプリケーションのユーザー認証周…

Androidアプリ開発でよくやるエラー

バックエンドがDjangoでよくやるエラー エンドポイントの最後に/をつけていないためにエラーを起こすことがよくある。この場合にはandroid studioのエラーメッセージを見ても原因がわからない。 しかしながらdjangoのエラーメッセージを見ると、Internal Ser…

django file storage について

https://docs.djangoproject.com/en/3.0/ref/files/storage/#django.core.files.storage.Storage.get_available_name mediaファイルをdjangoのwebアプリケーションを通さないで、jquery等で直接サーバーに送信する。その後シグナル等でmediaファイルとオブジ…

django の画像(Media)アップロードに時間がかかる場合の対処

データを保存する際に小さなサイズにするとよい。それにはPillowのresizeが有効。なぜならアスペクト比を壊さないで済むから。 参考:https://djangosnippets.org/snippets/10597/ https://www.pynote.info/entry/pillow-resize

geodjangoのためにcentos7でpostgis環境を構築する

まずCentos7にpostgresql11をインストールする postgeSQL公式のリポジトリを利用する。 $ sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm リポジトリをインストール後postgresql…

DRFチュートリアルを読んでわかったことをメモする

Tutorial 2: Requests and Responses 参照:https://www.django-rest-framework.org/tutorial/2-requests-and-responses/ RequestオブジェクトがDRFでは少し異なるらしい。 request.dataが使える。ResponseオブジェクトもDRFでは少し異なるらしい。return Res…

Djangoのアプリにrequestしてレスポンスを得る

djangoのrestapiを実装する DRFをインストールする。 JSONのレスポンスを返す仕組みを構築する。とりあえずdjangoでJSON形式でレスポンスを返す仕組みを構築する。 Http接続を行う 基本的にAsyncTaskクラスを使って、その中のdoInBackgroundメソッド内でhttp…

webアプリケーションにSNSシェアボタンを実装する

SNSシェアボタンが必要になったわけ 自分のwebサービスを認知してもらうためにはネット上では拡散して認知してもらうのが良いと考える。そのためには自分のwebサービスをSNSでシェアしてもらうのが良いだろう。そこでSNSシェアボタンを実装する方法を調べる…

メモ

androidのバックエンドとしてdjangoが使える ソース:https://www.slideshare.net/kaki_k/jaws-ug-geeklab?next_slideshow=1 python-gcmについて android開発にpython-gcmなるものが必要である可能性が出てきた。 これはpush通知に必要な機能だと考えられる…

自前のテンプレートタグを作成する

やり方 参考:https://djangobrothers.com/blogs/custom_template_tags_filters/

django-allauth環境下でメールアドレスを変更する

条件 メールアドレスでユーザー認証を行う場合に、UserモデルかEmail Addressモデルのどちらのデータを使ってユーザー認証を行っているかわからない。 またEmail Addressインスタンスを変更するとUserモデルインスタンのEメールも自動的に変更されるのかもわ…