【发布时间】:2015-02-28 21:59:16
【问题描述】:
我是 django 新手,一个简单的查询阻止了我..
所以,这是我的模型的一部分:
class History(models.Model):
timestamp = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=200)
user = models.ForeignKey(User)
state = models.ForeignKey(Status)
reason = models.TextField()
gpgkey = models.ForeignKey(Key)
def __unicode__(self):
return self.name
class Key(models.Model):
gpgkey = models.CharField(max_length=128)
gpgid = models.CharField(max_length=32)
path = models.CharField(max_length=200)
def __unicode__(self):
return self.gpgkey
这个查询
History.objects.filter(pk=1).values()
返回:
[{'user_id': 1, 'name': u'test-4.30-6', 'timestamp': datetime.datetime(2015, 1, 1, 20, 2, 0, 578794, tzinfo=<UTC>), 'gpgkey_id': 1, 'reason': u'blablabla', 'state_id': 2, u'id': 1}]
目标是,例如。 gpgkey_id 是gpgkey : { gpgkey : "test", gpgid : "06B7FFF" } 等等所有其他相关对象。
我该怎么做?
我使用 values(),因为我想要的是字段,而不是整个模型。
【问题讨论】:
-
您可以使用 JSON。在这里您可以找到更多信息:stackoverflow.com/a/15538391/2154023
-
为什么要字段而不是模型实例?不要使用
values(),除非您明确需要包含key:value项的字典,并且您100% 确定不需要任何模型方法。 -
我想把它发回去(类似api),所以我只想要值而不是模型。
-
这更适合提到的@torm 之类的序列化程序。查看 serialization 上的 django 文档。此外,您应该查看 django rest framework 或 tastypie 来构建实际的 API,这两个都是轻松创建 API 的好框架。
标签: python django foreign-key-relationship django-queryset