牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Django

Djangoでrunserverを起動しようとしたら「port is already in use」とかなっちゃう場合のメモ

コマンド忘れがちなのでメモ $ python manage.py runserver 8000 とかして Error: That port is already in use. とかなったら $ kill `lsof -ti tcp:8000` してコロス

Django のバッチ処理とかで out of memory で Killed になる場合の対処メモ

Django の reset_queries() を利用する from django.db import reset_queries for hoge in Hoge.objects.all(): hoge.fuga() reset_queries() 参考リンク FAQ: データベースとモデル | Django documentation | Django

Django のフォームで必須のフィールドのみ文字列を表示させるメモ

例 <form> {% csrf_token %} <p>名前{% if form.name.field.required %}<span class="required"> 必須</span>{% endif %}</p> {{ form.name }} </form> 参考 Tell if a Django Field is required from template - Stack Overflow

Django の annotate で集計してみるメモ

忘れるのでメモ (たぶんこうなるという例。動作確認はしてない。) from django.db import models class Author(models.Model): name = models.CharField() book = models.ForeignKey(Book) class Book(models.Model): name = models.CharField() pubdate =…

Django のモデルで各オブジェクトごとに指定した期間だけ取得できるようにしたいメモ

よく忘れるのでメモ models.py class News(models.Model): contents = models.TextField(u'本文') start_at = models.DateTimeField(u'開始日時', null=True, blank=True) end_at = models.DateTimeField(u'終了日時', null=True, blank=True) $ python mana…

Django のモデルで save() する時に指定したフィールドのみ更新するメモ

よく忘れるのでメモ product.name = 'Name changed again' product.save(update_fields=['name']) 参考 https://docs.djangoproject.com/ja/1.10/ref/models/instances/#specifying-which-fields-to-save

Django の templates で forms.py で設定した max_length とかのみ表示するメモ

忘れるのでメモ forms.py class ContactForm(forms.Form): username = forms.CharField(max_length=100) template/hoge.html <p>{{ form.fields.username.max_length }}</p> で <p>100</p> みたいな感じで表示できる

Django の確認フォームで localflavor を使った都道府県を templates で表示させるメモ

(django1.8, python2.7) templetes で {{ form.prefecture.value }} と書くと 東京 とかではなく tokyo とか表示される問題。 form.get_fieldname_display とか色々やって表示されなかったので この記事 を参考に templatetags 使ってやってみた (参考サイ…

Django templetes で入れ子になって複数のview から使われてる場合にどこの view から使われているか確認するメモ

{{ request.resolver_match.view_name }} こんなのもある request.resolver_match.url_name 参考 url - How to get the current urlname using Django? - Stack Overflow

Django Templates で文字列の一部ををマスクするメモ

カード番号のマスクとか Templates 内で完結させたい場合 {% spaceless %}{% for n in form.creditcard.data %}{% if forloop.counter < 5 or 12 < forloop.counter %}{{ n }}{% else %}*{% endif %}{% endfor %}{% endspaceless % form.creditcard.data の…

django-ckeditor の画像アップロードでハマったメモ

(django1.8, python2.7) 手順 ここ に書いてあるけど... Add ckeditor_uploader to your INSTALLED_APPS setting Add CKEDITOR_UPLOAD_PATH = "uploads/" setting Add (r'^ckeditor/', include('ckeditor_uploader.urls')), project's urls.py 略 Install pi…

Django で Modelからアプリ名とモデル名を取りたいメモ

例 appname/models.py >>> HogeModel._meta.app_label 'appname' >>> HogeModel._meta.object_name 'HogeModel' # or >>> HogeModel.__name__ 'HogeModel' 参考 http://stackoverflow.com/questions/3599524/get-class-name-of-django-model http://stackove…

Django の templates では無い場所で contrib.humanize の intcomma とか使いたい場合のメモ

templates の中だと <p>{{ 999999|intcomma }}<\p> とかで 999,999 と表示できるけど templates 以外で使いたい >>> from django.contrib.humanize.templatetags.humanize import intcomma >>> intcomma(100000000) u'100,000,000' ふつうにそのままな感じでい</p>…

Django で Rails の flash みたいなやつメモ

Rails Rails のユーザに簡易メッセージを表示するやつ。Controller で値を入れて View で表示。 ActionDispatch::Flash Django Django の場合は messages framework settings.py MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' …

Django の ORM で昇順・降順ではなく指定したid順でデータ取るメモ

In [11]: foo_ids = [101, 19, 75] In [12]: order_ids = ','.join(["{id}".format(id=id) for id in foo_ids]) In [13]: foos = Foo.objects.filter(id__in=foo_ids).extra(select={'order_ids': "FIELD(id, {})".format(order_ids)}, order_by=['order_ids…

Vagrant と Ubuntu と Docker と docker-compose と Django と PostgresSQL と Ansible とを動かすメモ

(macosx10.9, Vagrant 1.7.2, Docer, docker-compose, ansible 1.9.1) 前置き 想定以上にハマったので途中経過メモ。 とりあえず Djnago 動かして webブラウザで表示できた。 あとで Aansible まわり書く。 (これやる前に Vagrant + coreos でやろうとした…

docker-compose で Django と PostgreSQL で runserver 起動してみるメモ

ほぼ "Getting started with Compose and Django" そのまま (macosx10.9, boot2docker1.6.0, docker-compose1.2.0, django1.8) インストール boot2docker http://boot2docker.io/ docker-compose Docker Compose - Docker Documentation boot2docker 実行 $ …

Django を Vagrant 環境でサーバ起動してるときに django-debug-toolbar のメニューが表示されない場合のメモ

(Django1.6) request.META['REMOTE_ADDR'] を何とかして表示する これが例えば 10.0.3.3 だったら settings にこれを追記する INTERNAL_IPS = ('127.0.0.1', '10.0.3.3') runserver 再起動 これで表示できた 参考サイト Installation — Django Debug Toolbar…

Django のバージョンをワンライナーで調べるメモ

$ python -c "import django;print(django.VERSION)" (1, 6, 5, 'final', 0)

Django で Rails の Foo.select(:title) みたいなフィールドの値だけ取りたい場合のメモ

(django1.6, rails4)なんか忘れるのでメモ Rails の場合 irb(main):002:0> Foo.select(:title) Foo Load (1.3ms) SELECT title FROM "foos" => #<ActiveRecord::Relation [#<Foo id: nil, title: "hoge">, #<Foo id: nil, title: "fuga">]> Django の場合 In [3]: Foo.objects.values_list('title', flat=True) Out[3]: ["hoge", "fuga"] Qu…</foo></activerecord::relation>

Django で非同期する Celery のメモ

Celery - Distributed Task Queue — Celery 3.1.16 documentation First Steps with Celery — Celery 3.1.16 documentation First steps with Django — Celery 3.1.16 documentation Celery 3.1 を Django で使う - Qiita

Django でランダムな文字列を生成するメモ

(django1.6.5) In [5]: from django.utils.crypto import get_random_string In [6]: get_random_string() Out[6]: u'JgkKgwrOcdZD' In [7]: get_random_string(20) Out[7]: u'7iLVOOyJKSoBNjgM3tNK' In [8]: get_random_string(22) Out[8]: u'vJV5VmxoedRFY…

Django で速攻 ユーザログインのサンプル作成するメモ

(django1.6, pytho3.3) views.py from django.contrib.auth.decorators import login_required @login_required def hoge_view(request): urls.py url(r'^accounts/login/$', 'django.contrib.auth.views.login'), templates djangoのソースからコピー djang…

さらっと AngularJS1.2.0 でクライアントサイド、Python3 と Django1.6 で api サーバ を試してみるメモ

(Python==3.3, Django==1.6, djangorestframework==2.3.8, angular1.2.0, generator-angular0.6.0-rc.1) Django で apiサーバ作成 virtualenv mkvirtualenv booklist_sample --python /opt/local/bin/python3.3 インストール $ pip install django $ pip ins…

Django + Bootstrap3 でゲストブックアプリを作ってみるメモ

(python==2.7.5, django==1.5.5, twitter_bootstrap==3.0.0) github にコードあげてみた https://github.com/CortYuming/django_guestbook_sample メモ クラスベース汎用ビューの ListView と CreateView を混ぜてささっと作ろうとしたが、うまくいかず。 結…

Django で簡単に戻るボタンのメモ

(django==1.5.4, python==2.7.3) <input type="button" value="Back" onClick="javascript:history.go(-1);"> もしくは <button onClick="javascript:history.go(-1);">Back</button> こんな感じかな参考サイト python - Django templates: create a "back" link? - Stack Overflow

django-registration でユーザ認証のメモ

(django==1.5.4, python==2.7)ユーザ登録するとメール来て、その本文にあるリンクに飛ぶとログインできるようになるやつ Rails の Devise 的な感じ https://bitbucket.org/ubernostrum/django-registration インストール pip install django-registration 設…

Django で開発時にメール送信の確認するメモ

(django==1.5, python==2.7) settings.py EMAIL_USE_TLS = False EMAIL_HOST = 'localhost' EMAIL_PORT = 1025 デバッグ用メールサーバ起動 $ python -m smtpd -n -c DebuggingServer localhost:1025 送信確認 shellからメール送信してみる $ python manage.…

Django で PDFを作成するメモ

(Django1.5, Python2.7) reportlab を利用する ReportLab - Content to PDF Solutions pip install reportlab Django で動作確認用サンプルアプリを作成 プロジェクト作成している前提で ./manage.py startapp reports reports/urls.py from django.conf.url…

Djangoでネストしたurls.pyとredirectのreverseでの名前付き URL パターンの呼び方のメモ

(Django1.5, Python2.7) apps/urls.py from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns( '', url(r'^admin/', include(admin.site.urls)), url(r'^contact/', include(…