django modelserializer 增加 一个 外键 字段
时间: 2023-05-27 17:05:59 浏览: 91
django序列化时使用外键的真实值操作
如果要在 Django 的 ModelSerializer 中增加一个外键字段,可以按照以下步骤进行:
1. 定义外键字段
在 ModelSerializer 中定义外键字段,可以使用 ForeignKey 或者 PrimaryKeyRelatedField,例如:
```python
from rest_framework import serializers
from myapp.models import MyModel, RelatedModel
class MyModelSerializer(serializers.ModelSerializer):
related_model = serializers.PrimaryKeyRelatedField(queryset=RelatedModel.objects.all())
class Meta:
model = MyModel
fields = ('id', 'name', 'related_model')
```
这里定义了一个名为 related_model 的外键字段,使用 PrimaryKeyRelatedField 类型,并指定了 RelatedModel 的 queryset。
2. 修改视图
在视图中使用 MyModelSerializer 进行序列化时,需要将外键字段显式地传入,例如:
```python
from rest_framework import generics
from myapp.models import MyModel
from myapp.serializers import MyModelSerializer
class MyModelList(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
def perform_create(self, serializer):
serializer.save(related_model=self.request.user)
```
这里定义了一个名为 MyModelList 的视图,使用 MyModelSerializer 进行序列化。在 perform_create 方法中,将外键字段 related_model 显式地传入。
这样就可以在 Django 的 ModelSerializer 中增加一个外键字段了。
阅读全文