小编Jer*_*ock的帖子

Django REST Framework为POST/PUT提供了不同的深度?

我正在使用Django REST Framework为我的Web应用程序创建API.我有一个班级'评论',已depth=2Meta课堂上设定.这很有GETComments.当我尝试发送POSTPUT请求(即创建一个新的Comment)时,我被告知我需要包含对象而不是ForeignKey ID.

这是我的Serializer类:

class CommentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Comment
        depth = 2 
Run Code Online (Sandbox Code Playgroud)

该模型:

class Comment(models.Model):
    user = models.ForeignKey(User, null=True, blank=True,
        related_name='comments')
    budget = models.ForeignKey(Budget, related_name='comments')
    published = models.BooleanField(default=False)
    body = models.TextField()
    created = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

视图代码:

class Comments(generics.ListCreateAPIView):

    model = Comment
    serializer_class = CommentSerializer

    def pre_save(self, obj):
        obj.user = self.request.user
Run Code Online (Sandbox Code Playgroud)

输出(JSON)中显示的错误是:

{"user": ["This field is required."], "budget": [{"non_field_errors": ["Invalid data"]}]}
Run Code Online (Sandbox Code Playgroud)

发送此原始数据时:

{"budget": 2, "published": …
Run Code Online (Sandbox Code Playgroud)

python django rest django-rest-framework

9
推荐指数
3
解决办法
6915
查看次数

Rails"行动"扼杀了关键冲突

我正在构建一个包含各种CRUD端点的RESTful Rails服务.在其中一个Create端点上,我传入的数据包括:

...
action: "action_name"
...
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是params[:action]包含"create",而不是action我传入的参数的实际值.我认为这是因为params[:action]Rails会自动填充.

有没有其他方法来访问我传递的这个键?我做了一些公然愚蠢的事吗?

ruby ruby-on-rails actioncontroller

7
推荐指数
2
解决办法
352
查看次数