Tag Archives: Django

Python

Django 1.10アップデート時にはまったこと

2016年8月1日にDjango 1.10がリリースされました。このバージョンにアップデートしたところ、3点ほどはまったことがあったので忘備録として残しておきます。

read more »

Python

djangoのモデルを保存する際に特定のカラムを除外できるようにする方法

djangoのモデルはsaveメソッドを使ってDBに保存できます。その際に特定のカラムのみを更新したい場合、saveメソッドのupdate_fieldsで指定できます。

ただ少なくともdjangoのバージョン1.9.7では 特定のカラム以外を更新する という方法は見当たらなかったので、mixinを作成してみました。作成したmixinを使用するとsave(exclude_fields=['name1', 'name2'])の様に更新対象外とするカラムを指定することができるようになります。

read more »

Python

Djangoを使って、PubHubSubbubに対応したレスポンスを返す方法

Djangoを使って、PubSubHubbub(PuSH)用のレスポンスを実装する方法を紹介します。PubSubHubbubを実装することで、Googleになどに、サイトの更新を伝えることができます。

PubSubHubbubについては、このブログがわかりやすいと思います。

read more »

Python

[django、TransactionTestCase]別スレッドを起動しているアプリの注意点

リクエストのタイムアウトの関係上、重い処理をdjangoのviewで走らせたい場合、予約して後程バッチ処理で実行したり、別スレッドを立ち上げて実行することがあるかと思います。ただ、別スレッドを立ち上げるビューのテストケースを書いたときに、TestCase(django.test.TestCase)を継承したテストケースだと期待したテスト結果を得られないことがありました。

この投稿ではビューから別スレッドを立ち上げた場合に、TestCase(django.test.TestCase)を継承したテストケースで起こり得る問題と、その解決方法を紹介します。

今回使ったdjangoのバージョンは1.8.3です。また、djangoのアプリが接続するDBはMySQLを使っています。

read more »

Python

【django】UUIDFieldを使って、AutoFieldを置き換える

django1.8から追加された、UUIDFieldの使い方を紹介します。このクラスを使うと、UUIDを扱えるフィールドをモデルに追加できます。

UUIDFieldの用途としては、djangoのドキュメントに書いてある通り、プライマリキーにするAutoFieldの代わりになります。例えばランキングテーブルのような、大量のデータを高頻度に削除し追加する場合など、AutoFieldを使いたくない場合にUUIDFieldを使うことができます。

read more »