我在一個項目中的以下模型:django模型數據表;試圖保存模型之外從列表中選擇項目
class CarAssignment(models.Model):
leg = models.ForeignKey(Leg, null=True, blank=True)
driver = models.ForeignKey(Driver, null=True, blank=True)
riders = models.ManyToManyField(Rider, null=True, blank=True)
我想創建一個網頁,一個表,一個管理員用戶可以編輯驅動器和爲特定組中所有車輛分配的車手物品。我無法使用formset,因爲我還需要添加來自其他模型的數據,並且每個列表中的選項都來自不同的騎手和驅動程序子集,屬於特定組。 Driver是一個選擇列表,Riders是一個多選列表。
我已成功構建頁面和表來表示數據,並具有正確工作的下拉列表。但是,我無法弄清楚如何保存項目。這是一個特定的問題場景:
對於表1中的行1(表示CarAssignment對象#1),我從選擇下拉列表中選擇一個新的驅動程序。我在HTML指定自定義名稱標籤來識別它們,如下所示:
<option selected name="select.driver.{{ car_assignment.id }}">{{ driver }}</option>
視圖
然後,我想看看它是否匹配任何東西,如下:
for car_assignment in CarAssignment.objects.filter(leg__in=legs):
driver_tag = "select.driver." + str(car_assignment.id)
if driver_tag in request.POST:
car_assignment.driver = driver
car_assignment.save()
問題是,當它找到匹配的驅動標籤時,它返回的是名字和姓氏的字符串。我無法執行car_assignment.driver =驅動程序,因爲它試圖將驅動程序對象等同於字符串。
我不知道如何做到這一點。我想我可以解析出第一個和最後一個名字,並嘗試將它們與Driver模型進行匹配,以獲得我需要的Driver對象,但這似乎效率低下並且可能會出錯。
任何幫助表示讚賞(我是一個編程和Django新手)。謝謝。