サーバーサイド
【Django】ログイン時にメールを送信するには、signal.pyを作ってapps.pyに登録しておく【セキュリティ通知】
セキュリティ対策の一環として、ログイン時にメールを送信させる。 すでにsettings.pyにメール送信設定を実装済みとする。 【メール認証】Django-allauthの実装方法とテンプレート編集【ID認証】 appname/signals.py を作る。 関数にデコレータを当てて、ログインの信号を受けたら発動する。 from django.contrib.auth.signals import user_logged_in, user_logged_out from django.dispatch import receiver from django.conf import settings from django.core.mail import EmailMessage @receiver(user_logged_in) def user_logged_in_callback(sender, request, user, **kwargs): # ログインをしたときの処理 #送信元のIPアドレスを手に入れる ip_list = request.META.get('HTTP_X_FORWARDED_FOR') if ip_list: ip = ip_list.split(',')[0] else: ...【Django】デフォルトの認証機能を網羅し、カスタムユーザーモデルとメール認証も実装させる【脱allauth】
- 作成日時:
- 最終更新日時:
- Categories: サーバーサイド
- Tags: django カスタムユーザーモデル 認証
【Django】views.pyでユーザーモデルを扱う時は get_user_model を使う
【Django】models.pyからforms.py及びadmin.pyを自動的に作る【コマンド1発で生成】
Djangoのmanage.pyのコマンドをsystemdから動かして常駐化【データを常にチェックし、Sendgridでメール送信】
【Django】.getlist()でtype="checkbox"のチェックの有無を調べる【複数人の権限の指定に有効】
【Django】getlistを使って複数枚の画像をまとめて送信する【サムネイルが表示される専用フォームあり】
- 作成日時:
- 最終更新日時:
- Categories: サーバーサイド
- Tags: Django JavaScript ウェブデザイン 追記予定
DjangoでManyToManyFieldを使い、中間テーブルのモデルを取得する【多対多のthrough】
例えば、こういうモデル構造の場合、 from django.db import models class Person(models.Model): name = models.CharField(max_length=128) def __str__(self): return self.name class Group(models.Model): name = models.CharField(max_length=128) members = models.ManyToManyField(Person, through='Membership') def __str__(self): return self.name class Membership(models.Model): person = models.ForeignKey(Person, on_delete=models.CASCADE) group = models.ForeignKey(Group, on_delete=models.CASCADE) date_joined = models.DateField() invite_reason = models.CharField(max_length=64) 通常、Groupモデルの、membersフィールドで呼び出せるのは、紐付いているPersonモデルのオブジェクトである。 中間テーブルのモデルであるMembershipではない。 もし、membersフィールドからMembershipモデルのオブジェクトを取り出したい場合は、 group = Group.objects.all().first() memberships = ...DjangoでBootstrapを使う【pip install django-bootstrap-form】