无法读取值django queryset

时间:2014-03-01 10:59:37

标签: django django-models

我刚接触Django&蟒蛇,并努力拼凑。我无法从我的数据库中读取值并填充到模板中。

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和docs,似乎无法解开它。 :(

非常感谢。

1 个答案:

答案 0 :(得分:0)

Q1。 lstMan就像列表一样工作。使用索引来获取第一个项目(一个dictinoary);然后使用另一个索引从字典中获取值。

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

Q2。尝试使用/未定义__unicode__的代码。根据{{​​3}}存在,您将获得不同的结果。

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!