Django

雑記帳

◯ django divide application - Google 検索application の分割単位を検討しているんだけどform - model, view - template みたいに分割するのがいいのかな。あるモデルのデータを json として表示する場合、もうその時点で one model, one appmodelform - m…

Python の デコレータ

用途 複数のメソッドに共通の前処理と後処理を付加できる。 ポイント 1) デコレーターは、デコレートされた関数を返す。 2) デコレートする関数の中身の記述は変えられない。 サンプル ① 以下は pre do, post do を前後に出力するデコレータ。 >>> def decor…

django-guardian と django-polymorphic

どうも相性が悪く使えないらしい。ここでは django-polymorphic について議論してるけど、普通に継承しただけでも同じ症状が起こる。ステータス的には open で対処してくれるのかな... とりあえず、親モデルじゃなくて permission を設定したい子モデルすべ…

Django の Group モデルについて

Facebook とか mixi のグループ機能みたいに、各グループごとに管理人を作って、管理人だけコンテンツの削除とか、ユーザをグループから追い出すような機能がないか探してた。◯ 結論 Django の Group にはデフォルトでは付いていない機能で、どうもなさそう…

Google Chart を JSON から作成

ここでのポイントは Step1, Step2, Step3 を入れ子構造にして、$.ajax の内側に処理を記述してしまうこと。そうしないと $.ajax の処理が終わる前に、次の処理が走ってしまいます。 <html lang="ja"> <head> <meta charset="UTF-8" /> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> </meta></head></html>

JavaScript お勉強会

◯ 基本 最強オブジェクト指向言語 JavaScript 再入門! これは感動した。 超初級者向け入門講座 これもマジで感動した。 Javascript 関数宣言の落とし穴 ◯ Google Chart のデータクリックしたら ajax POST でデータを送付する際に見た資料。 http://weblibra…

備忘録 Heroku に Django を iMac でデプロイして引っかかったところとか

公式の Getting Started with Django on Heroku とか Heroku で Django 動かす方法 を見ればなんとかなるんだけど、それでも個人的に幾つか詰まったりしたところがあったので、備忘録がてらに。しかし、出るわ出るわ 500 Internal Server Error(CGIスクリプ…

Django1.8.4 から 1.9 にバージョンアップ

とりあえず pip install Django==1.9 を打っただけ。 $ pip install Django==1.9 Collecting Django==1.9 Downloading Django-1.9-py2.py3-none-any.whl (6.6MB) 100% |████████████████████████████████| 6.6MB 72kB/s Installing collected packages: Djan…

Django Admin で OneToOne を1行で表示

① デフォルトでは Foreign Key の機能を流用するしかないみたい... python - Django Admin: OneToOne Relation as an Inline? - Stack Overflow② でも参照される側から、参照するようになるのはおかしいし。 【外部キー】データベース設計でテーブル参照"す…

Python で文字列クラス名からオブジェクトを生成

◯ class_ 関数 def class_(class_name): return globals()[class_name] globals() 現在のグローバルシンボルテーブルを表す辞書を返します。 2. 組み込み関数 — Python 3.6.3 ドキュメント ◯ 使用例 class A: def __init__(self, a, b): self.a = a self.b =…

ModelForm で hidden 属性を追加する。

たかだかこれだけのことでえらい時間を食ってしまった... orz class class MyModelForm(model.ModelForm): class Meta: model = MyModel fields = ['name','data',] # 1) 元から Model にある属性を hidden にしたい場合 widgets = {'name': forms.HiddenInp…

ModelForm を template に渡した時の値の参照の仕方...

などがわからなかったが、結局、ModelForm は Form を返すので、 Form のマニュアルを見れば良いことがわかった。 # Create the form class. <- ここに書いてあるやん! >>> class ArticleForm(ModelForm): ... class Meta: class ModelForm The generated F…

Python で unixtime から JavaScript の Data オブジェクト形式の文字列に変換

usage >>> unixtime_to_javascriptdatetime(1403481600) 'Date(2014,5,23,00,00,00)' >>> >>> unixtime_to_javascriptdatetime(1402272000) 'Date(2014,5,09,00,00,00)' definition def unixtime_to_javascriptdatetime(unixtime): python_datetime = unixti…

Python の引数は値渡しか、それとも参照渡しか。

値渡し (call by value) 引数は 値渡し (call by value) で関数に渡されることになります 4. その他の制御フローツール — Python 3.6.3 ドキュメント ここで渡されている値は、具体的には id という値だと思っています。思っていますというのはマニュアルに…

Django の Strategy Pattern 実装方法について

実は以下2つの検討が、ほぼ等価であることに気づいた。① マルチテーブル継承を使うべきか。 マルチテーブル継承(ManyToOne, Foreign フィールド) Model A a1 Strategy Model B b Model A a2 Strategy Model B b Model A a3 Strategy Model C c② OneToOne …

検討 多対一の関係の一側のオブジェクトに多の要素を持たせることについて

例えば、次のようなメソッド one_method を呼び出すとします。 obj_a.obj_b.obj_c.one_method()このとき メソッド one_method を定義する中で 呼び出し元の obj_a, obj_b を取得する方法があれば ご教示いただけないでしょうか? class C(): def one_method(…

Django の render, render_to_response, HttpResponse の違い

render と render_to_response は、いずれも HttpResponse オブジェクトを返すショートカットのラッパーメソッドです。ポイント 大きな違いは HttpRequset クラスの request オブジェクトをどのように渡すか渡さないかにあります。 ① 書き方の違い view.py …

Django の urls.html の name, namespace

Reverse for 'index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 的なエラーがでてきてなかなか辛かったので備忘録です (´・ω・`)Django の Tutorial ではいずれも同じ意味を成します。 <li><a href="/polls/{{ question.id }}/"> {{ question.question_tex</a></li>…

Django に PostgreSQL を指定

① projectname/settings.py に PostgreSQL の設定を書き込む。 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': '127.0.0.1', 'PORT'…

Ubuntu に Django を Python3 でインストールしたときに使ったコマンド

tar zxvf '/home/user/Downloads/Django-1.7.1.tar.gz' sudo apt-get install python3-pip sudo pip3 install setuptools sudo python3 setup.py install

ccchart を Django で使うために見た資料

本家 ccchart サンプルコードどこやーってずっと探してたんですけど、グラフの下にかかれてるんですよね泣 あとはどうやってDjangoからccchartにデータ渡すんだろうって考えてたんですけど、Django(Python)でjsonファイルを出力させて、それをccchartで受け…

Python の datetime まわりの記事まとめ

Pythonでタイムゾーンを扱うメモ | taichino.com Pythonの日付処理とTimeZone | Nekoya Press python 現在時刻取得 - Qiita pythonのunix-time <-> datetime の変換 - Qiita pytz をインストール、OS X に easy_install で -

Django で Model クラスのオブジェクト生成時に導出項目を設定させる。

単にコンストラクタを呼び、変数をセットするだけです。下のサンプルコードでは、季節性の価格(季節に依って変動する価格) seasonal_value を持つ Product モデルについて記載しています。サンプルコード class Product(models.Model): original_price = m…

I want to cast a parental object to a child object in Python.

Because there is no way to cast a object in Python, I make a method which do new a child class and copy values from a parental object.usage # cast method def cast(child_class, parental_obj): child_obj = child_class() for attr_name in paren…

Python でクラスキャスト

child_object.__class__ = ParentalClass

Python アプリケーションの配布方法について

課題 Python で開発したアプリをソースコードを閲覧されないように配布したい。 方針 pyc でのみ構成されるファイルを egg にまとめる。 installing only .pyc (python compiled) with setuptools - Stack Overflow 上記方針の問題 完璧に閲覧されないように…

大きくなりすぎた models.py の対処方法について

例えばある Product という「ひとつ」のモデルに対する処理が大きくなりすぎた場合の対処の仕方について考えてみたいと思います。参考にした神様サイト Separation of business logic and data access in django 解1. models.py ファイルを分割する。 これが…

Django の 3 種類のモデル継承スタイルの使い分け

参考にしたサイト モデルの継承 1. マルチテーブル継承 例えば Cake モデルと Bread モデルを作成するとします。Cake モデルも Bread モデルも持っているフィールドは、価格、製造年月日など、ほとんど同じです。そこで Product モデルを作成して、各々継承…

OS X で Django のモデルを再読み込みさせるスクリプト

Step1. こんなシェル initialize_db.sh を作成 rm db.sqlite3 python manage.py sql yourappname expect -c " spawn python manage.py syncdb expect Would; send \"yes\r\" expect Username; send \"dnalduser\r\" expect Email; send \"\r\" expect Passwo…

Django をコマンドから実行

つぎのようなことがしたい。 $ python -c "print('ドナルドデイズ')" 方法1.Django 外部からでも呼び出せるように設定する。 Not like that. But it is easy enough to write a standalone script for Django. python - Executing a Django Shell Command …