我的模型:Django的查詢關係
class Product(models.Model):
name = models.CharField(max_length=125, blank=False, null=False)
description = models.CharField(max_length=255, blank=True)
abbreviation = models.CharField(max_length=15, blank=True)
category = models.ForeignKey('inventory.Category',
on_delete=models.SET_NULL, null=True, blank=True)
metric = models.CharField(max_length=15, blank=True, null=True)
class Category(models.Model):
name = models.CharField(max_length=55, blank=False, null=False)
abbreviation = models.CharField(max_length=15, blank=True)
parent_category = models.ForeignKey('inventory.Category',
on_delete=models.SET_NULL, null=True, blank=True)
我要收回所有產品:
產品= Product.objects.all()
這是確定。我獲得了所有成功的產品。
但我希望返回的產品帶有ForeignKey屬性作爲引用模型的文本字段,並且不包含引用它的原始整數。
有問題的字段將是Category.name。
目前我的回報是:
{model: product, pk:1, fields: {..., category: 1} }, { ....... } ...
我想:
{model: product, pk:1, fields: {..., category: 'Categoria 1 '}
我需要一套預先填入相關的模型信息,因爲我會返回一個JSON字符串作爲服務調用者的結果。
我試圖返回JSON:
products = Product.objects.all()
serialized_products = serializers.serialize('json', products)
return JsonResponse({'result': 'success', 'data':serialized_products}) #return all
我怎樣才能做到這一點?最簡單,最優雅的形式...
是什麼讓你認爲外鍵不是一個對象? –
@ShangWang我可能沒有正確解釋自己。在foreingKey對象中,我想返回** Category.name **,但是當我查詢Product.objects.all()時,**類別**屬性給了我對應於指向類別的整數。我將把它作爲JSON字符串返回,所以我需要這個** category.name ** allready填充。 – Pavarine
您需要編輯您的帖子以向我們展示您是如何嘗試轉換爲json的。 –