首页 > 解决方案 > 如何从 id 调用 django 模型的字段?

问题描述

我在这段代码中找不到错误代码从选择中调用模型ID并将其存储在一个变量中,之后我需要恢复两个模型冠军并像数组中的字符一样存储

<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>

更详细的模型.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>

标签: django

解决方案


问题是您要求在 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/


推荐阅读