django
ほとんどdjangoが仕組みを用意してくれてるんだけど、サンプルアプリを作って動かしてみたのでメモ ドキュメントを読まずにやってるので、適当にやってエラー発生→直すの流れになっています まずurls.pyにpassword_resetを定義 from django.contrib.auth.vie…
この間、ClassBasedViewにデコレータを適用する方法を幾つか試してて、例としてlogin_requiredデコレータを使ってたんですが、その流れで、login_requiredをMixinで行うライブラリを見つけたので試してみました。 django-braces Welcome to django-braces’s …
昨日ちょっと書きましたが、FormWizardは単純にformのリストを渡すと、各stepを識別する名前がu'0'、とかu'1'とかになります。 class OrderWizard(SessionWizardView): form_list = [AuthenticationForm, AddressForm, PaymentForm] def done(self, form_lis…
djangoのFormWizardは各ページにそれぞれフォームをレンダリングして、入力値をセッションやcookieに保存しておいて、最後に全てvalidな状態のデータを揃えて、登録処理なりなんなりを行うというものですが、単純に今までの入力値の表示確認をしたい場合とか…
こんなClassBasedViewがあるとしてviews.py class LoginRequiredSampleView(TemplateView): template_name = 'apps/login_required.html' なんらかのデコレータを使いたい場合、いくつか方法が考えられるのでひとつずつ試してみた。 1つめ。views.pyでlogin_…
djangoのModelFormはどこでchoicesに未選択を表す「-------」を入れているのか、ちょっと気になったのでソース追っかけてました。 メモを残しておきます。適当に作ったサンプルmodels.py from django.db import models FAVORITE_COLORS_CHOICES = (('blue', …
views.pyを直していたらテストが全部こんなエラーになってちょっと焦った ImproperlyConfigured: The included urlconf apps.urls doesn't have any patterns in itRedirectViewのurlを取得するのにreverseを使ったのが原因 from django.views.generic impor…
django-admin-honeypotを試してみました。 django-admin-honeypot/admin_honeypot at develop · dmpayton/django-admin-honeypot · GitHub ハニーポットとは ハニーポット (英語: Honeypot) は、コンピュータセキュリティ用語としては、不正アクセスを受ける…
Django 1.5.1でstartprojectすると、クリックジャッキング対策のためのMiddlewareが用意されていることがわかります。 'django.middleware.clickjacking.XFrameOptionsMiddleware'ですね。コメントアウトされてますが。 たぶん1.4以降だと用意されてます。 M…
サーバーサイドのログをChromeのコンソールに表示するライブラリを見つけたのでDjangoで試してみました。まずchromeのプラグインをinstallします。 chromeの右上のボタンがでますので、使うときはactiveにします。 次にpythonのライブラリをインストール pip…
djangoのModelFormでChoiceFieldの表示にRadioSelectを使い、フィールドにdefaultを指定していないと、「未選択」のためのradioボタンが表示されます。 コードは以下の通りmodels.py from django.db import models FAVORITE_COLORS_CHOICES = (('blue', 'Blu…
Formの表示をするときに、入力が必須な項目に、「*」をつけたり「必須」って表示したりすることはよくあります。djangoの場合、必須かどうかの定義はformクラス(ModelFormの場合はmodelクラスの場合も)に記述してあるので、テンプレート側で「この項目は必須…
djangoのOneToOneFieldは対応するレコードがない状態で参照しようとするとDoesNotExistエラーになります。 class Place(models.Model): name = models.CharField(max_length=50) address = models.CharField(max_length=80) def __unicode__(self): return u…
djangoのmodelでchoicesを持つフィールドはget_FOO_displayでhuman readableな値を返してくれます。Model instance reference | Django documentation | Django こんな感じで使えます。 from django.db import models from django_localflavor_jp.jp_prefect…
昨日SessionWizardViewを使ったForm Wizardをさわってみたんで、そのままCookieWizardViewに置き換えて挙動をみてみる。 SessionWizardViewとCookieWizardViewの違いはこれだけ class SessionWizardView(WizardView): """ A WizardView with pre-configured …
djangoでは複数ページにまたがるフォームを処理するためにForm wizardという仕組みが用意されてます。練習のため、できるだけシンプルな使い方をして、動作を確認してみました。 まずFormが必要です。 適当に2つ用意します。forms.py class AddressForm(form…
djangoのForm、cleanメソッドでValidationErrorをraiseすると、エラーメッセージは__all__キーに保存されるので、テンプレートで表示するときは {{ form.non_field_errors }} で表示します。cleanは複数フィールドの組み合わせ条件をテストするんで、フィー…
以下の手順でokだと思ってたんだけどなぜかカンマ区切りにならず エラーにもならず1. INSTALLED_APPSに'django.contrib.humanize',を追加 INSTALLED_APPS = ( .... 'django.contrib.humanize', ) 2. テンプレートに以下を追加 {% load humanize %}3. 使う {{…
フォーム入力エラーのとき、フォームを再描画してエラーメッセージを表示することになりますが、ファイルのアップロードがある場合、その入力値はクリアされますので、もう一度選ぶことになります。django-file-resubmitはファイルをキャッシュにキープして…
昨日さわってみたFormPreviewですが、ぱっと見た感じだと更新機能に対応できないように見えたので、いろいろ調べてみました。以下はFormPreviewでフォームを表示する部分の関数です。 def preview_get(self, request): "Displays the form" f = self.form(au…
なにかのデータを登録する機能で、登録完了する前に確認ページを表示したい、って要件はよくあります。DjangoではFormPreviewというクラスが用意されているので使ってみます。 まず登録するモデルを作成 from django.db import models from django_localflav…
LANGUAGE_CODE='ja'で、USE_I18N=Trueなのに、県名がアルファベットで表示されるのかと思って調べたのでメモ。 translationの仕組みとして、django/conf/locale以下の定義は勝手にみるけど、その他の箇所にlocaleが置いてある場合はLOCALE_PATHSってやつを定…
djangoで入力エラーのとき、input項目にclass="error"のようにして、デザインを変えたい場合。 フォームで動的にセットするにはどうすればいいか、調べてやってみました。 from django import forms class ContactForm(forms.Form): name = forms.CharField(…
djangoにはlocalflavorアドオンが含まれていて、日本語圏のためには、郵便番号のフォームフィールド(JPPostalCodeField)と、県名を選択できるウィジェット(JPPrefectureSelect)が用意されてます。(知りませんでした) 考えてみると今までdjangoで住所を入力す…
django-digestというパッケージを使うとdjangoでdigest認証をかけることができます。 python-digestに依存してるので一緒にinstallします。 pip install django-digest python-digest akoha / django-digest / wiki / Home ― Bitbucket dimagi/python-digest…
djangosnippetsにmiddlewareのサンプルがあります Django snippets: Basic Auth Middleware ついでにBasic認証の仕組みをメモしておこうと思います。 Basic認証の流れ 1. クライアントが認証が必要なページをリクエスト2. サーバーはユーザー名とパスワード…
以下の続きDjango 1.5のカスタムユーザーモデルとdjango-registration - brainstorm Django 1.5のカスタムユーザーモデルとdjango-registration その2 - brainstorm Django 1.5のカスタムユーザーモデルを使っていて、fork版のdjango-registrationでユーザー…
django 1.5でプロジェクト作って、カスタムユーザーモデルを定義してみる。 apps.models.py from django.contrib.auth.models import AbstractBaseUser from django.db import models from django.utils.translation import ugettext_lazy as _ class MyUser…
django 1.5ではUserモデル周りでいくつかの変更がありました。 こちらがわかりやすいです。カスタムユーザーモデルですね。 Django 1.5 の紹介 - Ian Lewis ところでdjangoでユーザー登録というとdjango-registrationがわりと使われているんじゃないかと思い…
なんかパッケージがあるのかなと思ったけど見当たらず。このくらいは自前で実装するのが普通なのかな?と思ったらdjango-decoratorsというのがgithubに上がってて、いい感じにつかえるデコレータが定義されていた。 julian-amaya/django-decorators · GitHub…