我正在使用Django Rest框架和Swagger为API文档创建一个私有消息应用程序。我是这个框架的新手,我不确定ListCreateAPIView是否是正确的方法。我需要以下端点:
我的问题是如何从URL获取发送者ID和接收者ID
这是我的代码,欢迎对每个部分(包括序列化程序和模型)进行任何更改。提前谢谢
class Message(models.Model):
sender = models.ForeignKey(
UserProfile, on_delete=models.CASCADE, related_name='sender')
receiver = models.ForeignKey(
UserProfile, on_delete=models.CASCADE, related_name='receiver')
message = models.CharField(max_length=1200)
createdAt = models.DateTimeField(auto_now_add=True)
is_read = models.BooleanField(default=False)
def __str__(self):
return self.message
class Meta:
ordering = ('createdAt',)
class MessageSerializer(serializers.ModelSerializer):
"""For Serializing Message"""
sender = serializers.SlugRelatedField(
many=False, slug_field='username', queryset=UserProfile.objects.all())
receiver = serializers.SlugRelatedField(
many=False, slug_field='username', queryset=UserProfile.objects.all())
class Meta:
model = Message
fields = ['sender', 'receiver', 'message', 'createdAt']
class MessageViewSet(ListCreateAPIView):
serializer_class = MessageSerializer
queryset = Message.objects.all()
def list(self, request, *args, **kwargs):
queryset = Message.objects.all()
serializer = MessageSerializer(queryset)
print(self.request.data)
print(kwargs)
return Response(serializer.data)
router = DefaultRouter()
router.register('messages', MessageViewSet.as_view(), basename='messages')
urlpatterns = [
path('', include(router.urls)),
]
您可以像这样访问视图中的查询参数
下面是REST框架文档的摘录
相关问题 更多 >
编程相关推荐