Posts
【Django】allauthを使用し、カスタムユーザーモデルを搭載させ、SendgridのAPIでメール認証をする簡易掲示板【保存版】
config まず、カスタムユーザーモデルと、DjangoallauthでSendgridを使用したメール認証の設定を施す。 config/settings.py """ Django settings for config project. Generated by 'django-admin startproject' using Django 3.1.2. For more information on this file, see https://docs.djangoproject.com/en/3.1/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/3.1/ref/settings/ """ from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'al#f(6(($8m%g#l4t2-0tvv1(&hbcd+(e8dt$!-m+ospxzv0gu' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] SITE_ID = 1 #django-allauthログイン時とログアウト時のリダイレクトURL LOGIN_REDIRECT_URL = '/' ACCOUNT_LOGOUT_REDIRECT_URL = '/' #### ...mogrifyコマンドを使って画像を一括クロップ(トリミング)する
Djangoでpython3のsubprocessモジュールを使い、任意のコマンドをなるべく安全に配慮して実行させる
【Django】allauth不使用でユーザー認証機能を実装した簡易掲示板【ログインとログアウトのみ】
【Django】ビュークラスの継承を使い、予めcontextを追加させる
クラスベースのビューであれば、継承をするだけで、継承関係にある全てのビューに同じ機能を追加できる。 どのページでも表示させるデータ(例えば、サイトのトップバーに表示するニュースなど)にも継承を使えば、予めの追加が実現できる。 以下は、40分Djangoにビュークラスの継承を行い、contextを追加するメソッドを呼び出せるようにしている。 from django.shortcuts import render,redirect from django.views import View from .models import Topic class ContextView(View): def context(self): context = {} context["news"] = Topic.objects.order_by("-id")[:10] return context class BbsView(ContextView): def get(self, request, *args, **kwargs): context ...【PR】ElementTube 一般公開
【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から拝借--> ...chart.jsでグラフ表示幅と高さを指定する。
- 作成日時:
- 最終更新日時:
- Categories: フロントサイド
- Tags: JavaScript chart.js
まず、公式によると下記の方法ではchart.jsの横幅と高さ指定は通用しない。 <canvas id="graph" height="40vh" width="80vw"> 他にもクラス名を指定して、そのクラス名に幅などの装飾を施す方法も通用しない。 対策 対策1:親要素でstyle属性にposition:relativeとwidth及びheightを合わせて指定する。 クラス名にCSSで装飾を施すのではなく、親要素のstyle属性に指定しなければうまく行かないので注意。 <div style="position:relative;width:250px;height:250px;"> <canvas id="graph"></canvas> </div> 対策2: ...