django
【Django】年月検索と、年別、月別アーカイブを表示させる【最新と最古のデータから年月リストを作成(Trunc不使用)】
Djangoで月別アーカイブと年月計算を実装させる 元となったコードは40分Djangoにモデルへ投稿日を記録するフィールド(dt)を追加している。 forms.py from django import forms from django.core.validators import MinValueValidator,MaxValueValidator from .models import Topic class TopicForm(forms.ModelForm): class Meta: model = Topic fields = ["comment"] #モデルを使用しないフォームクラス class YearMonthForm(forms.Form): year = forms.IntegerField() month = forms.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(12)]) モデルを使用しないフォームクラスで年と月を数値型で受け取る。月は1から12までの数値なので、validatorsで追加の制約を付与する。 views.py 年月別アーカイブのリ ...Django-allauthにてフォームを中央寄せにさせる【ログインページのテンプレートのカスタマイズ】
以前の方法であれば、単純なCSSの割り当てだけだったので、ログインフォームを中央寄せに仕立てることはできなかった。 今回は、HTMLも大幅に変更を行い、ログイン画面のフォームを中央寄せに仕立てる。 account/base.html 全てのログインフォームのテンプレートから継承されるbase.htmlを下記のように編集する。 {% load static %} <!DOCTYPE html> <html> <head> <title>{% block head_title %}{% endblock %}</title> <!--中央寄せ、フォーム系のタグは全てBootstrapから拝借--> ...【Django】テンプレートで数値を使用したforループを実行する方法【レビューの星のアイコン表示などに有効】
Djangoをやる前に知っておきたいPython構文【オブジェクト指向(class文)と別ファイル読み込み(import文)は特に重要】
Djangoを始める前に知っておきたいPython構文をまとめる。 型 #数値型 score = 100 #文字列型 name = "Taro" #リスト型 numbers = [ 46,77,22 ] #辞書型 topic = { "id":1, "comment":"Hello" } #辞書型のリスト topics = [ { "id":1, "comment":"Hello" }, { "id":2, "comment":"Hi" }, { "id":3, "comment":"こんにちは" }, { "id":4, "comment":"どうも" }, ] 数値型は演算子(+ - * /)のいずれかを使用して計算を行うことができ ...【openpyxl】PythonからExcelファイルを読み書きする
- 作成日時:
- 最終更新日時:
- Categories: サーバーサイド
- Tags: python スタートアップシリーズ django Pythonライブラリ
openpyxlを使うことで、PythonからExcelファイルの読み書き編集ができる。 インストール まずはopenpyxlのインストール pip install openpyxl Excelファイルの新規作成・読み込み 新規作成 import openpyxl as px #新規作成(オブジェクト生成)から一旦保存。 wb = px.Workbook() wb.save('test.xlsx') 読み込み import openpyxl as px #既存のファイルを読み込み wb = px.load_workbook('test.xlsx') 先ほど作成したtest.xlsxを読み込む シートの操作 アクティブシートを選択する import openpyxl as px wb = px.load_workbook('test.xlsx') #アクティ ...【DRF】Django Rest Frameworkでリスト型のバリデーションも行う【UUIDや文字列を格納したリスト型のバリデーションに】
例えば、Ajaxを使用して複数選択削除を行いたい場合、idもしくはuuidのリスト型をサーバーサイドに送信することになるだろう。 そういう時、DjangoRESTFramework(以下DRF)のシリアライザを使用すると良いだろう。 UUIDを含むリスト型をバリデーションする #複数選択削除で利用 class UUIDListSerializer(serializers.Serializer): id_list = serializers.ListField( child=serializers.UUIDField() ) これで実現できる。 DjangoのFormクラスで実現させる場合。 リスト型で送られてくるデータの ...【Django】Modelクラス、Formクラス、もしくはSerializerクラスのsaveメソッドで保存した後、保存したモデルオブジェクトのIDを手に入れる方法【データ保存した後、関連するデータも追加したい場合】
【Django】requestオブジェクトからクライアントのUAやIPアドレス、CSRFCookieなどをチェック、テンプレート上に表示する。
【Django】DTLのextendsとblockを使って、テンプレートを継承をする