首页 > 解决方案 > 如何在一个字段中添加多个电子邮件

问题描述

我正在尝试创建一个包含一个或多个电子邮件地址的电子邮件字段的公司类。

我知道有可以将一封电子邮件作为参数的 EmailField 类型,但就我而言,我需要将其扩展到多封电子邮件。

class Client(models.Model):
    company_name = models.CharField(max_length=100, unique=True)
    project = models.ForeignKey(Project, blank=True, null=True, on_delete=models.SET_NULL)
    email_list = models.EmailField(max_length=70)

如何扩展此 email_list 字段以获取我需要的多封电子邮件的参数?

发送!

标签: djangodjango-models

解决方案


EmailField不能用于列表。

您可以创建另一个模型并使用ForeignKey

class Client(models.Model):
    company_name = models.CharField(max_length=100, unique=True)
    project = models.ForeignKey(Project, blank=True, null=True, on_delete=models.SET_NULL)


class Email(models.Model):
    client = models.ForeignKey(Client on_delete=models.CASCADE)
    email_list = models.EmailField(max_length=70)

或者像这样的 CharField:

class Client(models.Model):
    company_name = models.CharField(max_length=100, unique=True)
    project = models.ForeignKey(Project, blank=True, null=True, on_delete=models.SET_NULL)
    email_list = models.CharField(max_length=1000)


Client.objects.create(company_name="test", project=project_instance, email_list=json.dumps(email_list))

但我认为第二个不好,你会失去EmailField验证。


推荐阅读