如何创建允许在 Django 中添加多个 phone 号码的联系表单

How to create a contact form allowing to add multiple phone numbers in django

我正在 django 中创建一个简单的联系人应用程序,我想让每个人都拥有一个以上的 phone 号码。

我的 models.py 看起来像这样:

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=150)
    last_name = models.CharField(max_length=150)
    birthday = models.DateField(null=True, blank=True)

    def __str__(self):
        return ' '.join([self.first_name, self.last_name])

class Phone(models.Model):
    phone_number = models.CharField(max_length=12)
    description = models.CharField(max_length=25)
    person = models.ForeignKey(Person, on_delete=models.CASCADE)

    def __str__(self):
        return self.phone_number

我需要创建一个表单,我可以在其中添加核心联系信息和任意数量的 phone 号码。

我有一个像

这样的模型
class PersonForm(forms.ModelForm):
    class Meta:
        model = Person
        fields = '__all__'

如何创建允许插入 phone 号码的 phone_number 字段?

这是一个很好的教程,如果您遇到困难,它可能比文档更有帮助: http://whoisnicoleharris.com/2015/01/06/implementing-django-formsets.html

它使用表单集,允许您在一个页面上拥有和使用多个相同类型的表单。 还向您展示了一个 JQuery 插件,允许您动态添加和删除表单。