Django形式允许,添加一个人和他的家属

时间:2012-02-19 04:34:21

标签: python django oop

我正在写一个网站,可以保存区域内的家庭数据。我想要一个表格,让我添加有关家庭主管及其家属的信息。我的模型如下

class Person(models.Model):  
    name = models.CharField(max_length=80)
    sex  = models.CharField(max_length=2)
    dob = models.DateField(verbose_name = 'Date of Birth', blank=True)
    id_no = models.CharField(verbose_name='National ID Card No', max_length=20)
    education = models.CharField(max_length=30, blank=True)    
    class Meta:
        abstract = True

class FamilyHead(Person):
    father_name = models.CharField(verbose_name = 'Father/Husband Name', max_length=100)
    profession = models.CharField(max_length=40)
    marital_status = models.CharField(max_length=10)
    birth_place = models.CharField(verbose_name='Birt Place', max_length=30, blank=True)
    mobile_no = models.CharField(max_length=20)
    email = models.EmailField(max_length=40, blank=True)
    house_address = models.TextField(max_length = 100)

class AdultDependant(Person):
    guardian = models.ForeignKey('FamilyHead')
    relatin_w_guardian = models.CharField(max_length=20)
    marital_status = models.CharField(max_length=10, choices = STATUS)
    profession = models.CharField(max_length=40)

我想创建一个表单,让我添加一个FamilyHead和他/她的多个家属。如何用django做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您还没有,请(阅读)formsmodelform文档,以便至少知道它在哪里。

关于您的具体情况,您需要2个表单实例。 FamilyHead为ModelForm,AdultDependant表单列表为inline formset

第一次使用Django的这些功能时看起来有点难,但不要惊慌Django让它变得非常简单。