Django模型|当访问者类进入时,从adminsite发送电子邮件,并且访问者类有进入检查检查和访问添加

2024-04-16 23:52:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django编程的新手。我想在models.py中创建一个函数,并在django admin填充所有数据字段时执行它

我在django应用程序的models.py中创建了一个名为visitor的类 访客有属性电子邮件。 我在django应用程序的models.py中创建了另一个名为visit的类 它具有in_time、out_time和address visited属性

现在我需要发送电子邮件地址给访问者。电子邮件和消息应该是在时间,时间和地址访问

下面是我在models.py中写的内容:

import smtplib 
from django.conf import settings
from django.core.mail import send_mail
from django.db import models
from django.utils import timezone
from phone_field import PhoneField

s = smtplib.SMTP('smtp.gmail.com', 587) 
# start TLS for security 
s.starttls() 
# Authentication 
s.login("####@gm.com", "####") 

class Visitor(models.Model):
    name= models.CharField(max_length = 128, blank = True)
    email= models.EmailField(max_length = 254, blank = True)
    phone= PhoneField(blank=True, help_text='Contact phone number')
    def getmail(self):
        return self.mail
    def __str__(self):
        return self.name

class Host(models.Model):
    name= models.CharField(max_length=128, blank = True)
    visits= models.ManyToManyField(Visitor, through='Visit')
    email= models.EmailField(max_length = 254, blank = True)
    phone= PhoneField(blank=True, help_text='Contact phone number')
    # host_addr= models.CharField(max_length = 500, blank = True)
    def __str__(self):
        return self.name

class Visit(models.Model):
    visitor= models.ForeignKey(Visitor, on_delete=models.CASCADE)
    host= models.ForeignKey(Host, on_delete=models.CASCADE)
    check_in= models.DateTimeField()
    check_out= models.DateTimeField()
    visit_addr= models.CharField(max_length = 500, blank = True)
    message = str(check_in) + str(check_out) + visit_addr
    if(check_out != NULL)
    actions = s.sendmail("####", visitor.getMail(), message)

s.quit()

Tags: djangonamefrompyimportselftruemodels