2017-06-12 45 views
1

在我的項目我嘗試使用外部.py文件,使用這樣我的Django應用程序的風格管理數據:Django的ORM select_related AttributeError的

在我的Django項目我創建了一個模型:

class temp_test_keywords(models.Model): 
    main_id = models.ForeignKey(temp_main) 
    test_id = models.ForeignKey(temp_case) 
    key_id = models.ForeignKey(temp_keywords) 
    variable_id = models.ForeignKey(temp_variables, null=True, blank=True) 

    def __str__(self): 
     return '%s -> %s' % (str(self.main_id), str(self.test_id)) 

好了,現在在我的外部rst.py文件我開始Django的ENV是這樣的:

import sys 
import os 
import django 

sys.path.append('core') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'core.settings' 
django.setup() 

好吧,在這一點上我導入表並創建類做一些它認爲:

from django.db import models 
from django.contrib.contenttypes.fields import 
GenericForeignKey,GenericRelation 
from django.contrib.contenttypes.models import ContentType 
from django.db.models import Count 

from frontend.models import temp_test_keywords 


class PrepareRst: 
    def __init__(self,test_id,t_type,log=False): 
     self.rst = self.mainprep(test_id,t_type) 

    def mainprep(self,test_id,t_type): 
     return self.tc_prep(test_id) 

    #TestCase rst prep method 
    def tc_prep(self,test_id): 
     maxpar = temp_test_keywords.objects.filter(main_id = test_id).values('key_id').annotate(total=Count('variable_id')).order_by('-total').first() 
     totpar = maxpar['total'] 

     #Part1 list creation 
     count = 0 
     ltouple =() 
     l1 = ["Test Case"] 
     while (count < totpar): 
      l1.append("") 
      count += 1 
     ltouple += (l1,) 
     #Query for extract keywords, values 
     kv = temp_test_keywords.select_related() 

但是當我運行AttributeError的:對象類型 'temp_test_keywords' 沒有 'select_related'誤差提高

如果我從終端啓動蟒manage.py殼的「KV = temp_test_keywords.select_related屬性( )「命令工作正常,爲什麼在我的.py代碼不?

在此先感謝

+0

嘗試'temp_test_keywords.objects.select_related( 'SomeAttr')' –

回答

1

嘗試,

kv = temp_test_keywords.objects.all().select_related()