Отправка отфильтрованных данных с помощью django по электронной почте

Я хочу отфильтровать данные студентов по навыкам в вакансии и затем отправить их компании, которая разместила требования в вакансии, по электронной почте. есть ли у кого-нибудь идеи по этому поводу.

** Модель**

class Student(models.Model):

    name = models.CharField(max_length=50)
    skills = models.ManyToManyField(Skill)
    passout = models.ManyToManyField(Passout)
    email = models.EmailField(max_length=254 ,null = True)
    resume = models.ImageField(upload_to='media/resume', height_field=None, width_field=None, max_length=None , null=True)
    create_date = models.DateTimeField('created date',auto_now_add=True)

    def __str__(self):
        return self.name
    
class Company(models.Model):

    comp_name = models.CharField(max_length=50)
    loc = models.CharField(max_length=50)
    hr_name = models.CharField(max_length=50)
    hr_email = models.EmailField(max_length=254)
    
    def __str__(self):
        return self.comp_name

class Vacanccy(models.Model):

    com_name = models.ForeignKey(Company, on_delete=models.CASCADE)
    skillreq = models.ManyToManyField(Skill)
    yearofpass = models.ManyToManyField(Passout)
    title = models.CharField(max_length=255)
    expiry_date = models.CharField(max_length=50)

    def __str__(self):
        return str(self.com_name) 

enter image description here

На изображении выше 1-я вкладка - это студент, 2-я - компания, 3-я - вакансия

В таблице вакансий две компании разместили свои требования. Первая компания имеет соответствующий профиль rini, вторая remya

Если мы отфильтруем данные и они должны быть отправлены в соответствующую компанию, например rini details to dell и remya details to redmi

Мог бы быть лучший способ! но попробовал. и этот блок кода отправит по почте путь к резюме, а не фактический файл.

from django.core.mail import send_mass_mail
from django.http.response import JsonResponse


#its support function to convert queryset into dict
def get_dict_from_quryset(key, val, records):
    dict = {}
    for record in records:
        dict[record[key]] = record[val]

    return dict


def your_function_name(request):
    mail_data = []
    vacancies = Vacanccy.objects.all().values("com_name_id", "com_name__comp_name", "skillreq", "skillreq__name", "yearofpass__year")
    skills_ids = list(vacancies.values_list("skillreq", flat=True))
    comp_ids = list(set(vacancies.values_list("com_name_id", flat=True)))
    pass_years = list(vacancies.values_list("yearofpass", flat=True))
    comp_details = {}
    companies = Company.objects.filter(id__in=comp_ids).values("id","hr_email")
    dict_companies = get_dict_from_quryset("id", "hr_email", companies)
    vacancy_dict = {}
    for data in vacancies:
        vacancy_dict[data['skillreq']] = data['com_name_id']


    applicable_student_data = Student.objects.filter(skills__in=skills_ids, passout__in=pass_years).values("id","name", "resume", 'skills')

    repeat_student_id = []
    for student in applicable_student_data:
        if student['skills'] in vacancy_dict and student['id'] not in repeat_student_id:
            company_id = vacancy_dict[student['skills']]
            if company_id in dict_companies:
                email_id_hr = dict_companies[company_id]
                mail_content = ('Subject', student['resume'], 'yourrrr.from@gmail.com', [email_id_hr])
                mail_data.append(
                        mail_content
                )
                repeat_student_id.append(student['id'])
                continue

    tupple_mail_data = tuple(mail_data)

    if tupple_mail_data:
        send_mass_mail(tupple_mail_data, fail_silently=False)
    return JsonResponse({"status": "Succeed"})
Вернуться на верх