[英]Django filter data in table based on value from another table?
意見.py:
def dcuinterval(request):
var7 = dcu.objects.all()
MU_count = Meter_Mapping_Table.objects.filter(DCU_id=dcu.id).count()
d = {
'MU_count': MU_count, 'var7': var7,
}
return render(request, 'dcu_interval.html', d)
模型.py:
class dcu(models.Model):
id = models.AutoField(unique=True, editable=False, primary_key=True)
Asset = models.CharField(max_length=128)
IMEI_Number = models.CharField(max_length=128)
def __str__(self):
return self.Asset
class Meter_Mapping_Table(models.Model):
mid = models.AutoField(unique=True, editable=False, primary_key=True)
Meter_id = models.CharField(
max_length=128, help_text='(ID of the Meter table)')
MU_id = models.CharField(max_length=150)
DCU_id = models.CharField(max_length=150, null=True, blank=False)
def __str__(self):
return self.Meter_id
如何根據提交的另一個表過濾數據?
我需要根據 DCU 表 id 字段 DCU_id =1 過濾 DCU_id; DCU.id=1; 答案:MU_count=1 像這樣我需要過濾並顯示該計數
您可以使用:
Meter_Mapping_Table.objects.filter(DCU_id='1').count()
雖然這是答案,但您需要真正考慮您的數據庫設計並利用ForeignKey
關系。 不推薦使用外鍵作為CharField
。
我建議如下:
改變:
DCU_id = models.CharField(max_length=150, null=True, blank=False)
到:
DCU = models.ForeignKey(dcu, null=True, blank=False)
然后你可以這樣查詢:
Meter_Mapping_Table.objects.filter(DCU=1).count()
注意:還要考慮遵循Django 的模型命名約定。 因為這將有助於其他開發人員的可讀性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.