在我的django應用程序中,我試圖從一組對象中產生一個問題,然後在回答這個問題時,根據用戶得到的正確答案的多少創建一個得分的結果對象。我可以間接使用Django中的表單嗎?
我已經將我的一組問題對象分成適當的部分來迭代生成一個表單。我想知道的是如何計算頁面上覆選框的總數和選中的複選框的數量,並將其傳遞給django,以便我可以計算並設置視圖中結果對象的score屬性。
從我所看到的ModelForms中,他們只能直接將數據輸入到數據庫中,而不是將其提交到後端以供進一步計算。此外,ModelForm似乎是從您想要創建的模型類型生成的,而我想創建一個結果作爲從另一個模型生成的表單的結果。
下面是結果和概念模型來證明我的查詢:
class Concept(Chunk):
application = models.CharField(max_length=500)
subconcept1 = models.CharField(max_length=500, blank=True, null=True)
subconcept2 = models.CharField(max_length=500, blank=True, null=True)
subconcept3 = models.CharField(max_length=500, blank=True, null=True)
subconcept4 = models.CharField(max_length=500, blank=True, null=True)
subconcept5 = models.CharField(max_length=500, blank=True, null=True)
subconcept6 = models.CharField(max_length=500, blank=True, null=True)
subconcept7 = models.CharField(max_length=500, blank=True, null=True)
subconcept8 = models.CharField(max_length=500, blank=True, null=True)
subconcept9 = models.CharField(max_length=500, blank=True, null=True)
subconcept10 = models.CharField(max_length=500, blank=True, null=True)
conceptimage = models.FileField(blank=True, null=True)
@property
def mode(self):
return "concept"
class Result(models.Model):
rel_chunk = models.ForeignKey(Chunk, on_delete=models.CASCADE)
score = models.IntegerField()
timestamp = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(Profile, on_delete=models.CASCADE)
class Meta:
get_latest_by = 'timestamp'
在模板中,這個例子會有一個關於一個特定概念的問題。獲得答案的按鈕將隱藏問題div並將答案div放在其位置上。答案div遍歷顯示每個子概念和旁邊複選框的概念。然後用戶點擊一個按鈕來提交這個,並在提交我想獲得用戶輸入來計算結果對象的分數。
如果你顯示了一些代碼,你的問題會更清楚。如果模型表單不符合您的要求,您可以使用常規表單。 – Alasdair
我添加了一部分我的模型來澄清。我還沒有遇到在Django中使用常規表單。你能指點我的方向任何有用的資源?每當我搜索django和表單時,我只會得到使用模型表單的結果。 – Era
我會從[Django文檔](https://docs.djangoproject.com/en/1.10/topics/forms/) – Alasdair