2011-11-02 47 views
0

我有以下模式佈局:的Django和Ajax/JavaScript的

class A(models.model): 
    options = models.ManyToManyField(OptionSet, blank=True, null=True) 
    values = models.ManyToManyField(Value, blank=True, null=True) 

class OptionSet(models.model): 
    name = models.TextField(unique=True) 
    values = models.ManyToManyField(Value) 

    def __unicode__(self): 
     return '%s' % self.name 

class Value(models.Model): 
    name = models.TextField() 
    key = models.ForeignKey(Key, related_name='values') 

class Key(models.Model): 
    name = models.TextField(unique=True) 

而且我forms.py看起來是這樣的:

class A_Form(ModelForm): 
    values = forms.ModelMultipleChoiceField(queryset=Value.objects.all(), widget=CheckboxSelectMultiple, label="Einzelne Werte", required=False) 
    options = forms.ModelMultipleChoiceField(queryset=OptionSet.objects.all(), widget=CheckboxSelectMultiple, label="Optionen Sets", required=False) 

模板:

<form action="." method="POST">{% csrf_token %} 
    {{ form.as_table }} 
    <input type="submit" value="Update"/> 
</form> 

我使用形式與一個通用的更新視圖! 我是新來的javascript/ajax說實話從來沒有做過什麼在JavaScript/AJAX。我想要做的是在選項名稱上的鼠標懸停上,它應該顯示該選項集的所有值。如何做到這一點?

回答

0

您可以使用jQuery的.post()方法將活動選項的名稱發送到django腳本(實際上是服務器上的url)。然後您可以使用查詢找出所有值(我假設您已經知道如何從模型中提取數據)。然後,您可以再次使用HttpResponse()將計算值列表發送回您的頁面。

+0

對不起,請問並感謝您的回答,但是這不是太複雜嗎? –

+0

如果你知道更簡單的答案,那麼是的。在這種情況下,請分享您的簡單答案wagner-felix。否則,沒有 –

+0

好的,謝謝! @Lajos Arpad –