2016-03-07 129 views
1

試圖找出最優雅的方式來準確地從Django中的表單獲取POST數據,其中一些輸入字段是由用戶動態創建的。Django - 從列表中獲取POST數據在表單中

我還沒有完全編碼的一切,所以我會盡力提供足夠的細節來描述:

形式遵循下面的模式。

class Address(models.Model): 
title = models.CharField(max_length=200) 
instructions = models.TextField() 
date_time_added = models.DateTimeField(auto_now=True, null=True, blank=True) 

class Contact(models.Model): 
address = models.ManyToManyField(Stop, through='Address_Contact') 
first_name = models.CharField(max_length=100) 
last_name = models.CharField(max_length=100) 
phone_num = models.CharField(max_length=20, default='') 
email = models.CharField(max_length=50, default='') 
company = models.CharField(max_length=30, default='') 
date_time_added = models.DateTimeField(auto_now=True, null=True, blank=True) 

class Address_Contact(models.Model): 
address = models.ForeignKey(Address, on_delete=models.CASCADE) 
contact = models.ForeignKey(Contact, on_delete=models.CASCADE) 
date_time_added = models.DateTimeField(auto_now=True, null=True, blank=True) 

在用戶界面中添加一個地址和與其相關的聯繫人,用戶可以點擊一個按鈕來創建同一個頁面(通過jQuery實現)更多的聯繫人條目。因此,表單的初始演示文稿包含聯繫人的相關字段,但通過單擊該按鈕1次或更多次,用戶可以將多個聯繫人添加到同一地址。

我知道如何在request.POST上使用getlist()來獲取這些數據。

現在我的問題:

爲每個聯繫人,它可能有多個電話號碼。這也是通過jQuery在前端實現的。但是,當每個聯繫人有任意數量的聯繫人和聯繫人號碼時,我怎樣才能從每個聯繫人中獲取多個電話號碼?有沒有辦法以某種有序的方式訪問列表中的列表內容?

例如,下面是地址的可能聯繫人項:

聯繫人姓名:約翰·約翰遜

電話號碼:828 282 2999

電話號碼:399 399 3999

聯繫人姓名:Steve Murphy

電話號碼:399 399 3333

聯繫人姓名:瑪麗西

電話號碼:399 399 3000

電話號碼:299 392 2003

回答