Я работаю с Django 1.7, и у меня есть эти моделиSerialize Джанго QuerySet с иностранными значениями
class Producto(models.Model):
item = models.CharField(max_length=10)
descripcion = models.CharField(max_length=140)
unidad = models.CharField(max_length=5)
usuario = models.ForeignKey(User)
alta = models.DateTimeField(auto_now_add=True)
imagen = models.ImageField(upload_to='images/producto/',blank=True,null=True)
def __unicode__(self):
return self.item
class OEntrada(models.Model):
folio = models.CharField(max_length=15)
codigo_proveedor = models.CharField(max_length=15)
nombre_proveedor = models.CharField(max_length=100)
status = models.IntegerField(default=0)
fecha = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.folio
class OEntradaDetalle(models.Model):
oentrada = models.ForeignKey(OEntrada,related_name='detalles')
producto = models.ForeignKey(Producto)
cantidad_ordenada = models.DecimalField(default=0,decimal_places=2, max_digits=10)
cantidad_recibida = models.DecimalField(default=0,decimal_places=2, max_digits=10)
fecha_entrega = models.DateField(blank=True,null=True)
epc = models.CharField(max_length=25,null=True,blank=True)
анг Я хочу сделать JSON с некоторыми конкретными данными с некоторыми фильтрами, принимая только те продукты, которые не являются в инвентаризации (я получил это) Я хочу, чтобы получить oentrada.folio
, producto.item
, cantidad_recibida
и epc
от OEntradaDetalle
Я попытался Аннотировать:
def producto_para_ingreso(request,folio_orden_entrada):
inventario = Inventario.objects.all().values('epc')
pendientes = OEntradaDetalle.objects.filter(oentrada__folio=folio_orden_entrada,
cantidad_recibida__gt=0).exclude(epc__in=inventario).annotate(item='producto__item')
response = serializers.serialize('json',pendientes)
return HttpResponse(response)
также я пробовал значения: (это возвращает меня, чего я хочу, но в уродливой форме, как: {producto__item: u'ITEM1',cantidad_recibida:Decimal('100')}
)
pendientes = OEntradaDetalle.objects.filter(
oentrada__folio=folio_orden_entrada,cantidad_recibida__gt=0
).exclude(epc__in=inventario).values(
'epc','producto__item','cantidad_recibida')
На самом деле это то, что я сейчас: (JSON)
{
"fields": {
"producto": 7,
"oentrada": 1,
"epc": "122C00000829",
"fecha_entrega": null,
"cantidad_ordenada": "1",
"cantidad_recibida": "1"
},
"model": "inventario_rfid.oentradadetalle_deferred_cantidad_ordenada_fecha_entrega_oentrada_id",
"pk": 3
},
и мне нужно что-то вроде этого:
{
"fields": {
"producto": "ITEM-1", <<I need a Foreign Value, not the ID
"oentrada": "E01", << Same in this, I need a Foreign Value not the Id
"epc": "122C00000829",
"fecha_entrega": null,
"cantidad_ordenada": "1",
"cantidad_recibida": "1"
},
"model": "inventario_rfid.oentradadetalle_deferred_cantidad_ordenada_fecha_entrega_oentrada_id",
"pk": 3
},
было бы Awsome, если я могу получить чистый JSON, исключающий fields, model and pk
info.
Спасибо!
Я думаю, что [это] (http://stackoverflow.com/questions/3753359/serializing-foreign-key-objects-in-django) аналогично вам, и если вы используете для спокойной цели, я предлагаю использовать Django Rest Framework. –
Я видел это, но я использую Django 1.7, а wadofstuff.django.serializers.json больше не работает, также я пробовал natural_key, но мне не повезло –
Я также использую Django Rest Framework, но как я могу это сделать с REST? –