簡體   English   中英

在管理員中創建的 Django CustomUser,通過電子郵件通知用戶

[英]Django CustomUser created in Admin, User notification by email

業余愛好開發者,剛接觸 Python 和 Django。

正在處理的項目將包括通過管理后端使用 CustomUser(AbstractUser) 模型創建新用戶。 在 [保存] 我想自動發送電子郵件到新用戶電子郵件 [收件人:] 並共享管理員創建新用戶時提供的用戶名和密碼。

我在 MacOS 上使用 Python3.7 Django 2.2。 在虛擬環境 [Conda] 中進行開發。 開發環境中的電子郵件服務器設置為后端文件類型。 我已經在論壇 [包括這個] 上進行了“廣泛”搜索……嘗試了我能找到的示例代碼。 我已經能夠在表單保存時發送 [然后在后端文件中接收] 電子郵件,但不知道如何在電子郵件中包含表單變量。

視圖文件

from django.shortcuts import render
from django.core.mail import send_mail


def notification_mail_send(request):

    form = CustomUserCreationForm(request.POST)

    if form.is_valid():
        # SET UP MAIL CONTENT AND SEND MAIL
        pass

表格文件

from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser

class CustomUserCreationForm(UserCreationForm):

    class Meta(UserCreationForm):
        model = CustomUser
        fields = ('username', 'owner_fullname', 'email')

class CustomUserChangeForm(UserChangeForm):

    class Meta(UserChangeForm):
        model = CustomUser
        fields = ('username', 'owner_fullname', 'email')

您應該能夠使用form.cleaned_data[field_name]訪問表單數據,其中field_name例如是"username"

如果您使用 Django 模板來構建您的電子郵件內容,請將表單對象作為上下文傳遞並使用例如{{ form.cleaned_data.username }}

使用 django admin 時,您無需編寫自定義視圖和表單。

如果您想更改管理員的行為,您通常需要覆蓋ModelAdmin類。

在你的情況下,我建議覆蓋save_model()

感謝我的開發人員的幫助。 我確實深入研究了 Rupin 的建議並成功應用了“信號”: http : //docs.djangoproject.com/en/2.2/topics/signals 只需添加 'if created': 在 post_save_receiver(sender, instance, created, **kwargs): 函數中解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM