Django如何将不同模型的数据分组到一组数据中?

2024-09-30 20:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的。。(Django和Stackoverflow)

我得到了这个项目,我想把来自两个不同模型的数据显示为一组数据。你知道吗

模板

 <div>
 {% for j in Es %}
     {{ j.id }}
     {{ j.Entreprise }}
     {{ j.Ville }}<br />
     {{ j.Pays }}
     {{ j.Poste}}
     {{ j.Departement }}<br />
     {{ j.Redacteur }}
     {{ j.Debut }}<br />
     {{ j.Fin }}<br />
     <a style="color: #404040;" href="/cv/creer/Exptech/{{ j.id }}/{{ j.Entreprise }}/{{ j.Departement }}"> Decrire mon expérience technique</a><br />
     <a style="color:#404040;" href="/cv/creer/Expskil/{{ j.id }}/{{ j.Entreprise }}/{{ j.Departement }}"> Decrire mon expérience skills</a><br />
     <a style="color: #404040;" href="/deletex/{{ j.id }}/{{ j.Entreprise }}"> supprimer</a><br />
 {% endfor %}

 {% for s in Tecs %}
     {{ s.Entreprise }}<br />
 {% endfor %}
 </div>

型号.py

class Experience (models.Model):
    Entreprise = models.CharField(max_length=100)
    Ville = models.CharField(max_length=100)
    Pays =  models.CharField(max_length=100)
    Poste = models.CharField(max_length=100)
    DEPARTEMENT_CHOICES = (
    ('Marketing','Marketing'),
    ('Finance','Finance'),
    ('Vente','Vente'),
    )
    Departement = models.CharField(max_length=100, choices=DEPARTEMENT_CHOICES)
    Debut = models.DateField()
    Fin =   models.DateField()
    Auteur = models.CharField(max_length=100)

    def __unicode__(self):
        return self.Entreprise

class Exptech (models.Model):
    Ids = models.CharField(max_length=100)
    Entreprise= models.ForeignKey(Experience)
    Departement = models.CharField(max_length=100)
    Auteur = models.CharField(max_length=100)
    Exp1 = models.TextField()
    Exp2 = models.TextField()
    Exp3 = models.TextField()

class Skills (models.Model):
    Ids = models.CharField(max_length=100)
    Entreprise= models.ForeignKey(Experience)
    Departement = models.CharField(max_length=100)
    Auteur = models.CharField(max_length=100)
    Exp1 = models.TextField()
    Exp2 = models.TextField()
    Exp3 = models.TextField()

视图.py

def complete(request):
    if not request.user.is_authenticated():
        return HttpResponse('<p> impossible dacceder a la page </p>')

    k = request.user.username
    ec = Etatcivil.objects.filter(Auteur=k)
    f = Formation.objects.filter(Auteur=k)
    E = Experience.objects.filter(Auteur=k)
    Tec = Exptech.objects.filter(Auteur=k)
    Ski = Skills.objects.filter(Auteur=k)
    return render_to_response('cv/cv.html', {'ecs':ec, 'fs': f, 'Es': E, 'Tecs': Tec, 'Skis': Ski})

所有这些我的问题是:

在模式上:经验班和技能班依赖于经验班(ForeingKey关系) 在我的模板中,当我渲染视图时,我得到一个经验列表,然后是一个Exptech对象列表。你知道吗

我不想有这个列表,但是有一对Exptech对象依赖于Exptech对象的“Experience”和“Exptech”对象。不是所有“Exptech”对象之前的所有“Experience”对象。你知道吗

我不知道怎么做。。。你知道吗

有人能帮我吗?我会给更多的信息,如果需要我不知道这是否是明确的。你知道吗


Tags: 对象bridobjectsmodelsfilterlengthmax
1条回答
网友
1楼 · 发布于 2024-09-30 20:31:08

你可以这样做:

{% for s in Tecs %}
{{ s.auteur }} <  -> {{ s.enterprise.ville }}
{% endfor %}

有关外键的详细信息,请单击此处: https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

我也猜你会想从Auteur这样的领域中建立一个独立的模型,因为你在其他模型之间广泛使用它。你知道吗

相关问题 更多 >