我想将nilai
调用到模板中的表格中。这是我的模特:
class AlternatifJalur(models.Model):
nama = models.CharField(max_length=100)
def __str__(self):
return self.nama
class KriteriaJalur(models.Model):
TIPE_KRITERIA_CHOICES = (
('benefit', 'Benefit'),
('cost', 'Cost'),
)
nama = models.CharField(max_length=100)
bobot = models.DecimalField(max_digits = 20, decimal_places = 2)
keterangan = models.TextField()
tipe = models.CharField(max_length=100, choices=TIPE_KRITERIA_CHOICES, default='Benefit')
def __str__(self):
return self.nama
class Matriks(models.Model):
kriteria = models.ForeignKey(KriteriaJalur)
alternatif = models.ForeignKey(AlternatifJalur)
nilai = models.DecimalField(max_digits = 20, decimal_places = 2)
def nilai_float(self):
return float(self.nilai)
这是我的观点:
def index(request):
kriteria = KriteriaJalur.objects.all()
alternatif = AlternatifJalur.objects.all()
matriks = Matriks.objects.all()
krite = KriteriaJalur.objects.get(nama='Jarak')
return render(request, 'index.html', {"kriteria":kriteria, "alternatif":alternatif, "matriks":matriks})
如何从我的模型中的nilai
班级拨打Matriks
,以便kriteria
班级中的Matriks
等于nama
kriteria
alternatif
我的Matriks
班级中的班级nama
等于alternatif
班级中的rm -r
?
答案 0 :(得分:0)
根据我的理解,您可能希望使用filter
和/或Q
来根据matriks
kriteria
和/来过滤您的nama
obj或alternatif
nama
。
将您的index
视图更改为:
from django.db.models import Q
def index(request):
kriteria = KriteriaJalur.objects.all()
alternatif = AlternatifJalur.objects.all()
# The below will contain all matriks whose kriteria nama is 'Kriteria A' AND alternatif nama is 'Jalur A'
matriks = Matriks.objects.filter(kriteria__nama='Kriteria A', alternatif__nama='Jalur A')
# The below will contain all matriks whose kriteria nama is 'Kriteria A' OR alternatif nama is 'Jalur A'
matriks = Matriks.objects.filter(Q(kriteria__nama='Kriteria A') | Q(alternatif__nama='Jalur A'))
krite = KriteriaJalur.objects.get(nama='Jarak')
return render(request, 'index.html', {"kriteria":kriteria, "alternatif":alternatif, "matriks":matriks})
这个怎么样:
<!-- index.html -->
{% for matrik in matriks %}
{{ matrik.nilai }}
{% endfor %}
<table class="table table-hover">
<tr>
<th>#</th>
{% for item in matriks %}
<th>{{ item.kriteria.nama }} ({{ item.kriteria.bobot }} %)</th>
{% endfor %}
{% for item in alternatif %}
<tr>
<td>{{ item.nama }}</td>
{% for matrik in matriks %}
<td>{{ item.JalurA }}</td>
<td></td>
<td></td>
{% endfor %}
</tr>
{% endfor %}
</tr>
</table>
答案 1 :(得分:0)
将出现matrik.nilai
,其中alternatif ='Jalur A'和kriteria ='Kriteria A'
@nik_m