我正在寻找使用distinct()
命令从我的数据库中获取不同的对象。
我有这个型号:
class CoefficientIntervention(models.Model):
Technicien = models.FloatField(verbose_name="Coefficient Technicien")
Ingenieur = models.FloatField(verbose_name="Coefficient Ingénieur")
Consultant = models.FloatField(verbose_name="Coefficient Consultant")
Architecte = models.FloatField(verbose_name="Coefficient Architecte")
Societe = models.ForeignKey(Societe, related_name="ste", verbose_name="Société", default="")
def __unicode__(self):
return unicode (self.id, self.Technicien, self.Ingenieur, self.Consultant, self.Architecte, self.Societe)
我的表单如下:
class CoefficientFormulaire(forms.ModelForm) :
Societe = CustomLabelModelChoiceField(Societe.objects.filter(), required=True, label = "Societe", label_func=lambda obj: '%s %s' % (obj.id, obj.Nom))
class Meta :
model = CoefficientIntervention
fields = ['Technicien', 'Ingenieur', 'Architecte', 'Consultant','Societe']
我的观点非常简单:
@login_required
def Identity_Societe_Coefficient(request) :
if not request.user.is_superuser :
raise Http404
coefficient = CoefficientIntervention.objects.order_by('Societe').values('Societe').distinct()
print coefficient
if request.method == 'POST':
form = CoefficientFormulaire(request.POST or None)
if form.is_valid() : # Vérification sur la validité des données
post = form.save()
messages.success(request, 'Le formulaire a été enregistré !')
return HttpResponseRedirect(reverse('Coefficient'))
else:
messages.error(request, "Le formulaire est invalide !")
else:
form = CoefficientFormulaire()
context = {
"coefficient" : coefficient,
"form" : form,
}
return render(request, 'Identity_Societe_Coefficient.html', context)
我的桌子有三行,例如:
如果我打印coefficient
,我会得到:<QuerySet [{'Societe': 2L}, {'Societe': 3L}]>
但是我想在我的数组中显示不同的对象,并且每次都使用最后一个。
我的模板如下:
<table class="lg-tableau-coeff">
<tbody>
<tr>
<th>ID</th>
<th>Coefficient Technicien</th>
<th>Coefficient Ingénieur</th>
<th>Coefficient Consultant</th>
<th>Coefficient Architecte</th>
<th>Société</th>
</tr>
{% for item in coefficient %}
<tr>
<td>{{ item.id}}</td>
<td>{{ item.Technicien}}</td>
<td>{{ item.Ingenieur}}</td>
<td>{{ item.Consultant }}</td>
<td>{{ item.Architecte }}</td>
<td>{{item.Societe.Nom}}</td>
</tr>
{% endfor %}
</tbody>
</table>
我怎么能这样做?
更新:
使用MySQL,命令是:
SELECT *
FROM Identity_coefficientintervention
WHERE id IN (SELECT MAX(id) FROM Identity_coefficientintervention GROUP BY Societe_id)
所以我必须找到如何将其转换为Django Query