Python 从django rest框架中的相关字段提取数据
我试图使用PrimaryKey从django rest框架中与外键相关的字段中提取数据 Views.py 类DispatchervsLrAPIView(CreateAPIView): 序列化程序.pyPython 从django rest框架中的相关字段提取数据,python,django,Python,Django,我试图使用PrimaryKey从django rest框架中与外键相关的字段中提取数据 Views.py 类DispatchervsLrAPIView(CreateAPIView): 序列化程序.py class DispvsLRSerializer(serializers.ModelSerializer): lr_quiz = serializers.PrimaryKeyRelatedField class Meta: model = LR fi
class DispvsLRSerializer(serializers.ModelSerializer):
lr_quiz = serializers.PrimaryKeyRelatedField
class Meta:
model = LR
fields = "__all__"
但我在《邮递员》中得到的结果是:
[
{
"id": 1,
"lr_no": 0,
"lr_date": "2019-11-10T12:45:33.478763",
"lr_billingparty": "0",
"invoice_no": 0,
"lr_declared": 0,
"ewaybill_no": 0,
"lr_quantity": 0,
"lr_weight": 0,
"lr_invoice_date": "2019-11-10T12:45:33.478763",
"lr_item_name": "0",
"lr_consignor_name": "0",
"lr_consignor_address": "0",
"lr_consignor_contact_name": "0",
"lr_consignor_contact_phone": "0",
"lr_consignee_name": "0",
"lr_consignee_address": "0",
"lr_consignee_contact_name": "0",
"lr_consignee_contact_phone": "0",
"vehicle_no": "0",
"lr_vehicle_type": 0,
"driver_name": "0",
"driver_no": "0",
"created_on": "2019-11-10T00:00:00",
"lr_quiz": 1,
"lr_owner": 2
}
]
如何展开“lr_测验”?其中lr_测验是外键相关字段
Models.py
class LR(models.Model):
lr_quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name='quiz_lr')
lr_owner = models.ForeignKey(Supplier, on_delete=models.CASCADE, related_name='lr_owner')
lr_no = models.IntegerField(default=0)
lr_date = models.DateTimeField(max_length=255, default=now)
lr_billingparty = models.CharField(max_length=255, default=0)
(shortened for easy readibility)
class Quiz(models.Model):
comments = models.TextField(max_length=256, blank=True)
origin = models.CharField(max_length=255, default=0)
destination = models.CharField(max_length=255, default=0)
total_trucks = models.IntegerField(default=0)
我需要LR及其相关测验的数据您可以使用嵌套关系来表示多个关系
class LZQUIZSerializer(serializers.ModelSerializer):
class Meta:
model = LZ_QUIZ_MODEL_HERE
fields = "__all__"
class DispvsLRSerializer(serializers.ModelSerializer):
tracks = LZQUIZSerializer(many=True, read_only=True)
class Meta:
model = LR
fields = "__all__"
您可以用这种方式关联您的foreignkey字段我尝试过这种方法,但它不起作用,我是否也应该添加模型?还有什么是LZQUITE?用你的实际模型替换这里的LZQUITE模型。lzquick只是对序列化程序@RahulSharma的命名
class LZQUIZSerializer(serializers.ModelSerializer):
class Meta:
model = LZ_QUIZ_MODEL_HERE
fields = "__all__"
class DispvsLRSerializer(serializers.ModelSerializer):
tracks = LZQUIZSerializer(many=True, read_only=True)
class Meta:
model = LR
fields = "__all__"
class DispvsLRSerializer(serializers.ModelSerializer):
fk_field = serializers.Charfield(source='fk.field', read_only=True)
class Meta:
model = LR
fields = [.....,
.....,
'fk_field']