Django ORM,按 object.proprety 过滤
ORM django , filtre by object.proprety
我无法从此视图获取结果:
def bultinPaie(request, id, cin) :
employe = Employe.objects.get(id = id)
listSalaire = Salaire.objects.filter(employe.cin == cin)
return render(request, 'backEnd/bultinPaie.html.html', {'listSalaire' : listSalaire})
我知道 employe.cin 无效,因为它不是 Salaire classe 的财产。
这是我使用的模型
class Employe(models.Model):
matricule = models.CharField(max_length=255)
nom = models.TextField()
prenom = models.TextField()
cin = models.CharField(max_length=255)
telephone = models.TextField(max_length=10)
adresse = models.TextField()
grade = models.TextField()
dateEmbauche = models.DateField()
class Salaire (models.Model):
employe = models.ForeignKey(Employe,on_delete=models.CASCADE)
montant = models.FloatField(default=0.0)
mois = models.TextField()
annee = models.TextField()
您可以过滤:
from django.shortcuts import <b>get_object_or_404</b>
def bultinPaie(request, id, cin):
employe = <b>get_object_or_404(</b>Employe, id=id<b>)</b>
listSalaire = Salaire.objects.filter(<b>employe__cin=cin</b>)
return render(request, ‘backEnd/bultinPaie.html.html', {'listSalaire' : listSalaire})
然而,这里根据另一个参数确定 Salaire
s。结果,一个人可以用不同的 cin
访问 URL,从而访问其他人 Salaire
.
您可能想要过滤:
def bultinPaie(request, id, cin):
listSalaire = Salaire.objects.filter(<b>employe__id=id,</b> employe__cin=cin)
return render(request, ‘backEnd/bultinPaie.html.html', {'listSalaire' : listSalaire})
我无法从此视图获取结果:
def bultinPaie(request, id, cin) :
employe = Employe.objects.get(id = id)
listSalaire = Salaire.objects.filter(employe.cin == cin)
return render(request, 'backEnd/bultinPaie.html.html', {'listSalaire' : listSalaire})
我知道 employe.cin 无效,因为它不是 Salaire classe 的财产。
这是我使用的模型
class Employe(models.Model):
matricule = models.CharField(max_length=255)
nom = models.TextField()
prenom = models.TextField()
cin = models.CharField(max_length=255)
telephone = models.TextField(max_length=10)
adresse = models.TextField()
grade = models.TextField()
dateEmbauche = models.DateField()
class Salaire (models.Model):
employe = models.ForeignKey(Employe,on_delete=models.CASCADE)
montant = models.FloatField(default=0.0)
mois = models.TextField()
annee = models.TextField()
您可以过滤:
from django.shortcuts import <b>get_object_or_404</b>
def bultinPaie(request, id, cin):
employe = <b>get_object_or_404(</b>Employe, id=id<b>)</b>
listSalaire = Salaire.objects.filter(<b>employe__cin=cin</b>)
return render(request, ‘backEnd/bultinPaie.html.html', {'listSalaire' : listSalaire})
然而,这里根据另一个参数确定 Salaire
s。结果,一个人可以用不同的 cin
访问 URL,从而访问其他人 Salaire
.
您可能想要过滤:
def bultinPaie(request, id, cin):
listSalaire = Salaire.objects.filter(<b>employe__id=id,</b> employe__cin=cin)
return render(request, ‘backEnd/bultinPaie.html.html', {'listSalaire' : listSalaire})