へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)! #vZkt8fc6J

Django

Django REST FrameworkでModelSerializer.to_representationが遅すぎる場合にやること(雑な調べ方)

APIのレスポンスタイムが2秒以上になってしまっていたので原因を発見するためにプロファイルしていた。 普段はどこが遅いのかを特定するときはline_profilerを使っているのだが、これにじゃっかん限界があって見にくくなっていたので、直接ライブラリのソー…

Djangoで"You can't specify target table 'core_user' for update in FROM clause"がでた

[2017/08/21 追記] なんじゃこのエラーと思って検索したら自分のブログにたどり着いたupdateだけでなく、delete()する前にシグナルのdisconnectをしていてもなる模様( 'ω') これ問題なのでは。調べて暇だったらDjangoにPR送るか(´・ω・`)〜追記ここまで〜 >…

Django, Unittest, AttributeError: 'module' object has no attribute について、3分ハマったので備忘録メモ

結論 パスがおかしい or ファイルの中身がおかしい より細かな調査方法 $ ./manage.py shell $ import foo.bar.target_source_file "Error comes up HERE" このエラーから得られる重要な知見 読み込めてないときは 中身がおかしい、別の場所を示している、別…

Django、connection.queriesでSQLクエリが見えない場合、またはテストの中でSQLクエリを見る方法(How to show queries in django tests)

前提 DEBUG = True になっていなければいけないFAQ: Databases and models | Django documentation | Django Make sure your Django DEBUG setting is set to True. Make sure (*´∀`*)Oh Yeah クエリを見る方法 from django.db import connection print(con…

Django。URLから名前解決する

In [23]: resolve('/api/v1/players/1/home/').view_name Out[23]: 'api:player-home' ↓逆 In [25]: reverse('api:player-home', kwargs=dict(player_id=1)) Out[25]: '/api/v1/players/1/home/' わるいことしたけろ〜(´・ω・`)

Djangoで、RunPythonをマイグレーションファイルに忍び込ませた際の罠 django.db.utils.OperationalError: (1054, "Unknown column 'x_field' in 'field list'")

Migrationクラスに次の文を追加したとする operations = [ migrations.RunPython(call_change_alpha_model), migrations.AddField( model_name='alpha', name='x_field', field=models.PositiveIntegerField(default=0), ), ] call_change_alpha_modelは以下…

DjangoでformsetをつくったときのPOSTの中身

'form-MAX_NUM_FORMS': ['1000'], 'form-TOTAL_FORMS': ['1'], 'form-INITIAL_FORMS': ['0'], 'form-MIN_NUM_FORMS': ['0'], 'form-0-is_checkbox_01': ['on'], こういうのを送らないと怒られるなお、is_checkbox_01をOFFにしたいときは、中身を'off'ではな…

Djangoのi18nで、localeが勝手に変わってしまったと思ったらそんなことなかった話

こまってたこと activate('ja')したあと、ふんふんふーんというノリで翻訳対応してたら、いつのまにか翻訳が効かなくなった。 こわくなったのでget_language()をデバッグにさしこんで事なきを得た。下を見れば、なんだあたりまえのことじゃないかというかん…

Djangoでmysqlのデータを取り込み直してmigrateするシェルスクリプト書いた

発端 Model変更→データかまう→やっぱやめた→dumpファイル入れなおす→migrate→Model変更→……→おぅふ、これ毎回やるのか……→めんどくさい!!!(´・ω・`) 必要におうじて編集してつかってほしいっ…!recreate_db.sh #!/bin/sh # $1 -> filename # Setting dir="…

Djangoで、pythonシェルからmigrate前のモデルのフィールドを見る方法

>>> from django.db.migrations.state import ProjectState >>> from django.apps import apps >>> for f in ProjectState.from_apps(apps).models[('applabel', 'hogemodel')].fields: ... print(f) ... ('id', <django.db.models.fields.AutoField>) ('created_at', <django.db.models.fields.DateTimeField>) ('updated_…</django.db.models.fields.datetimefield></django.db.models.fields.autofield>

Djangoのテンプレート、ContextとTemplateについて

環境 1.7。他はしらん。 こたえ python manage.py shell Python 3.4.2 (default, Jan 29 2015, 06:35:40) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin Type "help", "copyright", "credits" or "license" for more information. (Int…

Djangoのテンプレート、blockとendblockの意味について

baseのテンプレートから継承してオーバーライドできるようにするため Source: Template inheritance defines blocks that child templates can override

jsonファイルやxmlファイルからDjangoのmodelにデータを移動する方法

やりたいこと data.json { {"name": "yamada", "age":26}, {"name": "takemura", "age":31},} のようなデータを DJangoのmodelに突っ込みまくりたいときがあるとする。 (要はデータベースに格納したい) これを、import simplejsonみたいなことして、for文…

DjangoのCSRF token missing or incorrect.についての解決

追記 csrf_tokenは、単にPOSTするときに投げるランダムに生成された文字列だよ クライアントXは、あるページにHTTPRequest(GET)でアクセスする。 →サーバ側で、Djangoがランダムな文字列を生成 →そのランダムな文字列を含めたHTMLResponseをクライアントXに…

Djangoの概要の概要についててきとうにまとめた

はじめに Djangoの概要についての言及が文字だらけなので ああこんな感じね ってノリで全体を理解できるものがないか探したんですが 見つからなかったので 自分で まとめたまとめた! Djangoとかいうフレームワークと、ウェブサーバ(ApacheやNginx)、デー…

Djangonのテスト時でのGot an error creating the test database: permission denied to create database(Postgresql)の解決

事例 コマンド $ python manage.py test polls 結果(yesが僕の入力) Creating test database for alias 'default'... Got an error creating the test database: permission denied to create databaseType 'yes' if you would like to try deleting the t…

Why Did Happen The Problem $ python manage.py runserver 0.0.0.0:8000 Cannot Work

Because port 8000 did not open. Thank my wisdom for teaching my fool to do.

Heroku+Django(python)使ってみた。それとブラウザ上にApplication errorが表示されたときに見るとこと、個人的にハマったとことか

はじめに はい!先日(てゆか昨日)さくらレンタルサーバで運用しようとしてたら、「な、なんでそんな過去の遺物の上でがんばって無理矢理動かしてるの? Herokuでいいじゃん」 『え……? でもHerokuって、Linuxのサーバ借りれるとかじゃないですよね?』 「…

いまさらさくらのレンタルサーバでPython2.7.6+Django1.7.4の環境構築してみた。

はじめに レンタルサーバってどういうのがあるかわからないけど、 とりあえずノリで昔から聞いたことあるとこを借りてみたわけです。 なんで2.7.6なの?について デフォルトをかえていない あ、これ月額500円なのかと、 よく見ずにポチった。そしてさっそ…

GitHubのレポジトリとGoogle App Engineのレポジトリを共有してみたよ!

Google App Engineでポートフォリオサイト作りはじめた! 構成 GAE + Python + Django + Git(GItHub) GitHubの方のレポジトリにpushすると GAEの方にもpushされる やりかた Using Push-to-Deploy - Tools — Google Cloud Platform なんか、1回間違えて初期…

PythonでDjangoを入れるときにVirtualenvとかいうやつをつかう!!!

一応Google App Engineインストールしたから もうDjangoは入っているんだけど まあ当然 python -c "import django" なんて打ったって何も起こらないわけだよね。 そこで、なんかライブラリまでのパスを通すの、複雑そうで嫌だな! と思ったので 公式サイトか…

Django1.6で"python manage.py migrate"をしたらUnknown command errorが出た。

追記(2016/06/09): 情報が古すぎるので別記事を読むことを推奨 tutorial読んで、書いてあったからそのとおりやったらこんなエラー吐いた。 ググったら、自分がDjango development versionのdocumentを読んでいることに気付いた。 自分アホス。 デベロップバ…