如何从id调用django模型的字段?

时间:2018-06-15 16:58:01

标签: django

我无法在此代码中找到错误 代码从select中调用一个模型id并将其存储在一个变量中,之后我需要恢复两个模型冠军并像数组中的char一样存储

<script>
    $(document).ready(function() {
        $("#resoudre").click(function(){
            var strVehicules = $('#vehicule_sel')[0].value.innerText;
            var vehicules = strVehicules.split(" ");
            var idDemandes = $('#pt_collecte')[0].value;
            p = PointCollecte.objects.get(id=idDemandes);
            var strDemandes = (p.Latitude,p.Longitude);
            var demandes = strDemandes.split(" ");
         });
    });
</script>

fichier models.py

class vehicule(models.Model):
Matricule = models.CharField(max_length=50)
Marque = models.CharField(max_length=50)
Type = models.CharField(max_length=50)
Capacite = models.CharField(max_length=50)
date_mise_en_circulation = models.DateField(null=True)

def __str__(self):
    return self.Matricule

class PointCollecte(models.Model):
Nom = models.CharField(max_length=50)
Latitude = models.CharField(max_length=50)
Longitude = models.CharField(max_length=50)
Qtmoyenne = models.FloatField()

模板.html

<form>
        <div class="form-row">
            <div class="form-group col-md-6">
                <label for="pt_collecte">Les points De Collecte a visités </label>
                <select multiple class="form-control" id="pt_collecte">
                    {% for PointDeCollecte in pt_collectes%}
                        <option value="{{PointDeCollecte.id}}">{{ PointDeCollecte.Nom }} </option>
                    {% endfor %}
                </select>
            </div>
            <div class="form-group col-md-6">
                <label for="vehicule_sel">Les véhicules a utilisés </label>
                <select multiple class="form-control" id="vehicule_sel">
                    {% for vehicule in vehicules %}
                    <option value="vehicule.id">{{ vehicule.Matricule }}</option>
                    {% endfor %}
                </select>
            </div>
        </div>
        <div class="form-group col-md-4">
            <button id="resoudre" class="btn btn-primary my-1">valider </button>
        </div>
    </form>

1 个答案:

答案 0 :(得分:0)

问题是你要求在javascript块中执行python代码。

p = PointCollecte.objects.get(id=idDemandes);

大多数人会使用$.getJSON请求或类似的东西。 但是,如果你只想获得经度和纬度,你可以这样做:

{% for PointDeCollecte in pt_collectes%}
    <option value="{{PointDeCollecte.id}}" data-long="{{PointDeCollecte.Longitude }}" data-lat="{{ PointDeCollecte.Latitude }}">{{ PointDeCollecte.Nom }} </option>
{% endfor %}

然后你可以从javascript获取数据值,因为它们可以在DOM中使用。 请参阅:https://api.jquery.com/jQuery.data/