我一直在尋找到Django的連接返回的每個ID,我可以看到我怎麼能選擇具有.select_related相關的領域,但我似乎無法讓它按照我的想法工作。我基本上擁有與customer_id FK鏈接到客戶表的彙總表,我想從客戶字段中爲每個摘要返回的每個值選擇客戶名稱。如何使用Django的加入來選擇CUSTOMER_NAME對於在結果
我包含僞代碼來顯示即時消息試圖做什麼。
sql would be = ''' select a.customer_name, b.vm_name, b.vm_cpu, b.vm_mem from customers a, vms b where a.customer_id = b.customer_id'''
我該如何與django做到這一點。這樣,當我遍歷返回的值
for value in sql:
list.append(value.1, value.2, value.3)
這樣我可以關聯和輸出與各領域的CUSTOMER_NAME。
繼承人是我想要做的事:
compute_usages_related = ComputeUsages.objects.filter(customer_id = customer_id).filter(load_date = datetime(year, day, selected_month)).select_related('customer_name')
test_related = []
for row in compute_usages_related:
test_related.append(row.customer_name)
顯然不起作用。
基本上是一個爲特定的客戶,但其中公司員工擁有管理員權限可以查詢所有客戶的整個數據庫,並創建一個使用報告,所以我需要customer_names與查詢相關聯的情況。
有關如何使用django做到這一點的任何想法?
型號:
class Customers(models.Model):
customer_id = models.BigIntegerField(primary_key=True, editable=False)
customer_name = models.CharField(max_length=100)
inactive = models.CharField(max_length=1)
datetime = models.DateTimeField()
class Meta:
managed = True
db_table = 'customers'
def __unicode__(self): # Python 3: def __str__(self):
return self.customer_name
def clean(self):
if self.inactive != 'Y' and self.inactive != 'N':
raise ValidationError('Please enter a Y or N')
class ComputeUsages(models.Model):
compute_usage_id = models.AutoField(primary_key=True, editable=False)
customer = models.ForeignKey(Customers)
vm_name = models.CharField(max_length=4000)
vm_id = models.BigIntegerField()
core_hours = models.DecimalField(max_digits=15, decimal_places=2)
ram_hours = models.DecimalField(max_digits=15, decimal_places=2)
guest_os = models.CharField(max_length=100)
provisioned_cores = models.BigIntegerField()
provisioned_ram = models.BigIntegerField()
load_date = models.DateField()
datetime = models.DateTimeField()
class Meta:
managed = True
db_table = 'compute_usages'
def __unicode__(self): # Python 3: def __str__(self):
return self.vm_name
您應該顯示模型。 – 2014-10-20 16:34:01
@DanielRoseman doneski,請讓我知道你在想什麼。我正在嘗試關注文檔,但對於這個主題不太清楚。 – 2014-10-20 16:39:11
我相當確定,當我循環返回的計算使用情況時,我可以通過返回的id在該行中找到客戶ID,但我想按照django的方式進行操作。 – 2014-10-20 16:41:25