diadia

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

Django

ある座標点からxkm以内に存在するデータオブジェクトをmapに表示したい

PostGISを使う場合はST_DWithin()関数を使えばよいだろう。 ではgeodjangoではどうやって特定の範囲内のデータオブジェクトを取得するか? psycopg2を使ってデータオブジェクトのみ取得することももやり方としてはできるだろう。 しかしここではgeodjangoの…

geodjangoの環境構築

https://docs.djangoproject.com/ja/2.2/ref/contrib/gis/install/ geodjangoを使うには、python,django,空間データベース、地理空間ライブラリが必要。 PostgreSQLで空間データベースを使うには、ライブラリであるGEOS,GDAL,PROJ.4,PostGISが必要である。

再考:DetailViewの構造

DetailViewで詳細ページが表示できる理由 class ProductDetailView(DetailView): model = Product 上記の記述だけでhttprequestのGETが成立してしまうことをまず整理したい。 まずDetailViewはViewクラスを継承したものである。だからViewをカスタムしたもの…

UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list

以下の注意メッセージが表示される UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list:****** 解消方法 参考にしたところ:https://stackoverflow.com/questions/44033670/python-django-rest-framewor…

django:adminページでインスタンスを検索する

adminでインスタンスの検索が必要になるケース 例えば運用しているアプリケーションのインスタンスに誤りがあるとする。このインスタンスを修正するためにadminから修正することになっていたとする。 この場合アドミンからインスタンスを選択し、修正を行う…

デプロイ時にプロジェクトに必要なライブラリを漏れなくインストールする

結論:pip freezeを使う サーバーに必要なライブラリをインストールするために開発環境でpip freezeまたはpip listを使い確認しては、サーバーでライブラリをインストールしてきたが一気にインストールしてしまったほうが良い。 pip freeze > requirements.t…

django:PCとスマホで表示を変えたい

ユーザーのデバイスによって表示を変更したい 表示方法の変更としてレスポンシブデザインを採用しBootstrapを利用してきた。しかしレスポンシブな方法では納得いく表現ができなかった。 デバイスによって異なるテンプレートを表示させることができるか調査し…

django signalの情報を集める

signalの仕組みを理解するには2つのキーワードがある。senderとreceiverである。名前の通り、senderはsignalを送り出す役割を担う。receiverはそのsignalを受取り、何か挙動を起こす役割を持つ。receiverは関数またはインスタンスメソッドで無くてはならな…

django:sendgridでメール本文において&が&に変換されてしまう件について

状況 Checkクラスにはurlを格納する属性があり、一定時間ごとに各インスタンスurlを利用し、ウェブサイトにアクセスする。そして特定の情報が存在した場合にsendgridを使って自分のメールに送信する仕組みを設けた。メール本文にはアクセスしたurlを載せる。…

エラー:django.core.exceptions.ImproperlyConfigured: The included URLconf '***.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.

django.core.exceptions.ImproperlyConfigured: The included URLconf '***.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import. djangoのエラーでa circul…

django ページネーションについて

ページネーションについて ページネーションは一覧表示させるオブジェクトを1ページ内にどれだけ分割して表示させるか。それに関わる技術のことのようだ。技術書を読んでいるとなかなかに難しい分野らしい。何が難しいのかも理解できなかったので、そのへん…

サーバーに画像を送信する

djangoのimagefieldはメディアのファイルパスを記録するだけとも言えるので、ファイルパスをフィールドに記録したらあとはメディアのディレクトリに画像を配置すればちゃんと表示される。 で今の段階はサーバーに画像を送信する段階だ。調べてみるとzipファ…

DRF ImageFieldのファイルパスを登録したい

DRFでImageFieldにデータを登録したい なんとなくだけどModelSerializerを使ってもimageFieldに登録できないような気がしてきた。その辺を調べてみる。 資料:https://www.django-rest-framework.org/api-guide/fields/#file-upload-fields なんかファイルや…

DRF JSONデータの成形

成形する必要性 django rest framework の場合request.POSTには注意事項がある。 それはキーに対する値が空(ブランク?null?)の項目はDRFはエラーを吐き出す。辞書型データに例えて説明すると、ex_dict["key1"]=""の要素を含むデータをrequests.POSTするとエ…

エラー:AssertionError: You cannot call `.save()` on a serializer with invalid data.

AssertionError: You cannot call `.save()` on a serializer with invalid data. 上記のエラーが表示された。 エラーが出た状況: インスタンスを生成することを目的にdjango rest apiでrequests.post()をする。するとdjango アプリケーションで上記のエラ…

djangoにRESTAPIを実装する メモ

DRFはAPIを扱うフレームワーク djangoがwebフレームワークに対してdjango rest frameworkはrest apiを実装するためのフレームワークらしい。 これはCRUDが得意らしく、webアプリケーションのコンテンツを作るのに役立ちそうだ。 公式ドキュメント:https://w…

django migration

makemigrations でpostgresql上にテーブルが作られるのか、またはmigrateでテーブルが作られるのか? 該当するドキュメント 疑問に思うテーマについてdjangoドキュメントがある。こちらを見てみる。 https://docs.djangoproject.com/ja/2.2/topics/migration…

django-allauthを使ってメールを送信を絡めてユーザ登録したい

前提 sendgridを使ったユーザー登録を実行 emailを送信するためにはsettings.pyをいじると送れることは知っておくこと。 ここの設定によってemailの送信を例えばgmailから送ったり、sendgridのようなメール配信サービスのAPIを利用して送ったり、またはメー…

sendgridに関わるメモ

メモ https://simpleit.rocks/python/django/adding-email-to-django-the-easiest-way/ 上記リンクについて補足 djangoのメール送信はsend_mailで送信できるが、sendgridを使う場合当該ライブラリをインストールしてsettings.pyを指定の通りに変更するだけで…

gunicornをインストールしてサービス公開

http://torajirousan.hatenadiary.jp/entry/2019/04/22/181826 collectstaticを実行 サーバーに/usr/share/nginx/html/media,/usr/share/nginx/html/staticディレクトリがあることを確認してcollectstaticを実行する。 # ディレクトリがない場合以下を実行 $…

エラー: django.db.utils.ProgrammingError: syntax error at or near "WITH ORDINALITY" LINE 6: FROM unnest(c.conkey) WITH ORDINALITY co...

エラー django.db.utils.ProgrammingError: syntax error at or near "WITH ORDINALITY" LINE 6: FROM unnest(c.conkey) WITH ORDINALITY co... 以上のエラーが発生した。 これはdjangoのmigrateコマンドを実行したときのエラーである。 環境 環境 ---------…

centos7 psycopg2のインストールエラー

sudo pip3.6 install psycopg2のエラー Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-70sqru_l/psycopg2/ 以上のようなエラーが出た。この問題には以下のように解決する。 https://ja.stackoverflow.com/questions/469…

centos7にdjangoをインストール

djangoのインストール pipを予めインストールしておくこと。 sudo pip3.6 install django==2.2 その他djangoに必要と思われるもののリスト # djangoで画像を表示させるアプリを作る時 pip3.6 install -y Pillow # django-allauthを使う時 pip3.6 install dja…

さくらVPSを使ってdjangoを公開する まとめ

さくらVPSにcentos7を入れる http://torajirousan.hatenadiary.jp/entry/2019/03/31/011303 centos7の初期設定 サーバーへ安全にssh接続できるような設定を行う。 http://torajirousan.hatenadiary.jp/entry/2019/04/22/172101 条件は以下の通り。 root以外…

sqlite:DBに格納されたテーブルデータを確認する方法

djangoでは開発時にsqlite3が使われる。このDBに直接接続し、データを入れてみようと思った。そのときにテーブル名が必要になる。どのような名前のテーブルか 参考文献:https://crimnut.hateblo.jp/entry/2018/04/17/172709 import sqlite3 con = sqlite3.c…

django-allauthのログインリンクのはり方

webアプリケーションのnavバーにログインリンクをはろうと試みた。 メモしておく。 試みたこと いつものようにapp_nameをアプリurls.pyで定め、app.urls.pyでnameを定める計画をする。しかしそもそもこれは自分が作ったアプリではない。てことで少し悩む事に…

django-allauth : テンプレートのカスタマイズ

django-allauthを使ってみた結果ユーザのログインページが味気ない感じだった。 ここを修正していこうと思う。 https://qiita.com/s-katsumata/items/b667c81a127223d2e868 こちらにテンプレートのカスタマイズ方法があった。これを参考にテンプレートをカス…

formのウィジェットについて

ウィジェットの理解を深めない限り、forms.ModelFormやforms.Formの利用したとて、フォーム画面が残念な結果になってしまう。 見た目の良いフォーム画面を作るには、htmlでフォーム画面を作成するか、ModelFormやFormのウィジェットを使いこなせる様になる必…

django mediaについて

mediaの配信について分かっていないので、少し 調べてみることにする。 class Hoge(modelsModel): image = models.ImageField(upload_to="hoge/static/images", null=True, blank=True) このように書くと、サーバー上のpostgresqlのテーブルでは一体どのよう…

staticについて理解を深める

まず開発中の場合、django.views.static.serve() ビューを用いてstaticファイル、mediaファイルを配信するようだ。 https://docs.djangoproject.com/ja/2.1/howto/static-files/#serving-static-files-during-development https://docs.djangoproject.com/ja…