我試圖找出架構提供以下應用:從模板傳遞對象,查看使用Django
- 用戶呈現的表。
- 每個表格單元格都有幾個字段,用戶將填寫。
- 有一個常規提交按鈕:單擊所有輸入數據時(以及每個單元格基於輸入值的一些計算數據)應傳遞給一個Django視圖。
這裏有以下幾個問題:
我可以組織數據結構爲一組的方式,每個對象都會對應一個表格單元格的對象,而主對象,這將最終被傳遞給Django視圖,將會是這些對象的集合嗎?
如果是這樣,如何將主對象從模板傳遞到使用Django進行查看?
謝謝。
我試圖找出架構提供以下應用:從模板傳遞對象,查看使用Django
這裏有以下幾個問題:
我可以組織數據結構爲一組的方式,每個對象都會對應一個表格單元格的對象,而主對象,這將最終被傳遞給Django視圖,將會是這些對象的集合嗎?
如果是這樣,如何將主對象從模板傳遞到使用Django進行查看?
謝謝。
1.是否可以在HTML/JS中創建一個對象,其成員將包含來自這些字段的數據?
您不能在html/JS中創建對象,但是您可以構建代碼以顯示或請求來自Django中某個對象的數據。
比方說,你有一個模型美孚
class Foo(models.Model):
GENDER = (
('F', 'Female'),
('M', 'Male'),
)
name = models.CharField(max_length=150)
gender = models.CharField(max_length=1, choices=GENDER)
而且你的模板看起來像這樣
<body>
<form action="?" method="post">
<table>
<tr>
<td>Name</td>
<td><input type="text" name="name" maxlength="150" /></td>
</tr>
<tr>
<td>Gender</td>
<td>
<select name="gender">
<option value="F">Female</option>
<option value="M">Male</option>
</select>
</td>
</tr>
</table>
<input type="submit">
</form>
</body>
如果您填寫字段,然後點擊提交,那麼你就可以處理數據你的看法。
def add_foo(request):
if request.method == "POST": # Check if the form is submitted
foo = Foo() # instantiate a new object Foo, don't forget you need to import it first
foo.name = request.POST['name']
foo.gender = request.POST['gender']
foo.save() # You need to save the object, for it to be stored in the database
#Now you can redirect to another page
return HttpResponseRedirect('/success/')
else: #The form wasn't submitted, show the template above
return render(request, 'path/to/template.html')
最後一點也回答了問題2,我想。希望這可以幫助。
謝謝!在上述評論之後,我一直在思考這個問題,並得出結論:將不同的HTML名稱分配給表單的字段,然後使用request.POST在視圖中檢索它們對我來說是正確的解決方案。 – jazzblue
你可以發佈一些html,所以我們可以想象你現在擁有什麼。 無論如何,如果你點擊提交你的看法應該看到所有的字段使用'request.POST' –
謝謝。我沒有一個完整的HTML,但我開始做這件事之前我正試圖弄清楚架構,因此我的問題。基本上我問的是:1.是否可以在HTML/JS中創建一個對象,其成員將包含來自這些字段的數據? 2.是否有可能以任何方式將該對象傳遞給python視圖? – jazzblue