Я новичок в Django и простых блоков запросов меня ..Как получить связанные объекты с django ValuesQuerySet?
Итак, вот кусочек моей модели:
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}]
Цель такова, что для ex. gpgkey_id - gpgkey : { gpgkey : "test", gpgid : "06B7FFF" }
и т. д. для всех других связанных объектов. Как я могу это сделать?
Я использую значения(), потому что я хочу поля, а не целую модель.
Вы можете использовать JSON. Здесь вы найдете дополнительную информацию: http://stackoverflow.com/a/15538391/2154023 – torm
Зачем вам нужны поля, а не экземпляр модели? Не используйте 'values ()', если вам явно не нужен словарь элементов 'key: value', и вы на 100% уверены, что вам не нужны какие-либо методы модели. – knbk
Я хочу отправить его назад (api like), поэтому я хочу только значения, а не модель. – njoy