2014-03-01 2 views
0

Django & python을 처음 사용하고 조각끼리 모으는 데 어려움이 있습니다. 내 DB에서 값을 읽고 템플릿으로 채울 수 없습니다.값을 읽을 수 없습니다 django queryset

Q1) 로컬 바르 섹션

, 난 <TblManufacturer: object....> 같이 키 값 쌍 배 내에서 변수를 참조. 누군가 그 값을 읽는 법을 말해 줄 수 있습니까? 나는 작동하지 않았다 object.get(key)를 시도했다.

models.py :

class Tblmanufacturer(models.Model): 
    manufacturerid = models.IntegerField(db_column='manufacturerID', primary_key=True) 
    manufacturername = models.CharField(db_column='manufacturerName', unique=True) 
    createdon = models.DateTimeField(db_column='CreatedOn') 
    class Meta: 
    managed = False 
    db_table = 'tblmanufacturer' 

inspectdb 나를 위해 모델 파일을 만들었습니다.

>>> lstMan = Tblmanufacturer.objects.values('manufacturername').filter(manufacturerid=1) 
>>> print lstMan 
>>> [{'manufacturername': u'Nokia'}] 

어떻게 노키아를 읽습니까? 그리고 queryset 객체에서 멤버 값을 읽는 방법은 무엇입니까? <TblManufacturer object... >

Q2) __unicode__() 방법을 사용해야합니까? 왜 그리고 사용 하는가? 나는 djangbook과 워드 프로세서를 읽고, 그것을 unserstand 것으로 보일 수 없다. :(

덕분에 많은

답변

0

Q1 목록 같은 lstMan 작품의 첫 번째 항목 (A dictinoary)를 얻기 위해 인덱스를 사용합니다.... 다음 사전에서 값을 얻기 위해 다른 인덱스를 사용

>>> lstMan = [{'manufacturername': u'Nokia'}] 
>>> lstMan[0]['manufacturername'] 
u'Nokia' 

Q2.에 코드를 다음 시도/__unicode__ 정의하지 않고. 당신은 __unicode__1 존재에 따라 다른 결과를 얻을 수 있습니다.

print unicode(Tblmanufacturer.objects.get(manufacturerid=1)) 
  • >>> class KlassWith__unicode__(object): 
    ...  def __unicode__(self): 
    ...   return u'Klass Object!' 
    ... 
    >>> class KlassWithout__unicode__(object): 
    ...  pass 
    ... 
    >>> print unicode(KlassWithout__unicode__()) 
    <__main__.KlassWithout__unicode__ object at 0x0000000002A37780> 
    >>> print unicode(KlassWith__unicode__()) 
    Klass Object! 
    
+0

헤이 감사합니다. 그렇게 가치를 검색 할 수 있습니다. 나는 같은 일을하려고 애를 썼다. >>> lMan = Tblmanufacturer.objects.all() >>> lMan [, , , , : 0> [ '제조 업체'] >>> lMan [0] >>> lMan [0] [ 'manufacturerid'] Traceback (최신 통화 마지막) : 파일 "", 줄 1, TypeError : 'Tblmanufacturer'개체에 '__getitem__'특성이 없습니다. 오류가 발생합니다. 초기에 컬럼을 얻었는데 select *를하고 있습니다. 확실하지 않은게 뭐야? – GopinathR

+0

@GopinathR, 질문 코드에서'values ​​()'를 사용했지만 주석 코드에서는 사용하지 않았습니다. 'values ​​()'는 사전을 생성합니다. 'values ​​()'가 없으면 Model 인스턴스가 생성됩니다. 그래서 약간 수정해야합니다 :'lstMan [0] .manufacturername' – falsetru

+0

@GopinathR, Stack Overflow에 오신 것을 환영합니다! 이것이 도움이 되었다면, [답변 수락] (http://meta.stackexchange.com/a/5235)을 통해 커뮤니티에 알릴 수 있습니다. – falsetru