小编Ed_*_*Ed_的帖子

Django Rest Framework:在ViewSet中注册多个序列化器

我正在尝试创建一个自定义API(不使用模型),但是它没有在架构中显示请求定义(因此,没有大张旗鼓地显示它)。我当前的代码是:

views.py

class InfoViewSet(viewsets.ViewSet):

    @list_route(methods=['POST'])
    def some_method(self, request):
       data = JSONParser().parse(request)
       serializer = GetInfoSerializer(data=data)
       serializer.is_valid(raise_exception=True)
       info = get_data_from_elsewhere(serializer.data)
       return Response(info)
Run Code Online (Sandbox Code Playgroud)

urls.py

router.register(r'^info', InfoViewSet, base_name='info')
Run Code Online (Sandbox Code Playgroud)

serializers.py

class InfoSomeMethodSerializer(serializers.Serializer):

  list_id = serializers.ListField(child=serializers.IntegerField())
  password = serializers.CharField()
Run Code Online (Sandbox Code Playgroud)

它显得有些招摇,但只是响应部分。如何注册发布参数?我也不确定我是否正确使用了DRF(我是新手),所以任何纠正都将不胜感激。

-

编辑:我尝试了Linovia建议的serializer_class参数,但是没有用,我得到了:

TypeError:InfoViewSet()收到无效的关键字“ serializer_class”

我尝试了覆盖get_serializer_class方法,但也没有用:

def get_serializer_class(self):
    if self.action == 'some_method':
        return InfoSomeMethodSerializer
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

5
推荐指数
1
解决办法
666
查看次数

Ruby on rails:资产管道中的javascript

我是一个完整的菜鸟,我试图了解如何在Rails中使用javascript和资产管道.例如,我在哪里放一个简单的$(document).ready来在特定视图中执行.我已经完成了将代码放在视图中,但我认为这不是最好的方法.补充阅读也将不胜感激,谢谢.

javascript ruby-on-rails asset-pipeline

1
推荐指数
1
解决办法
1877
查看次数

Jax-RS 过滤器将对象传递给资源

我想将我在过滤器中用于身份验证的用户对象传递给资源。是否可以?

我正在使用wildfly 10(resteasy 3)

@Secured
@Provider
@Priority(Priorities.AUTHENTICATION)
public class AuthenticationFilter implements ContainerRequestFilter {

  @Inject
  private UserDao userDao;

  @Override
  public void filter(ContainerRequestContext requestContext) throws IOException {

    logger.warn("Filter");
    String uid = requestContext.getHeaderString("Authorization");
    User user;
    if((user = validateUser(uid)) == null) {
        requestContext.abortWith(
                Response.status(Response.Status.UNAUTHORIZED).build());
    }
  }

  private User validateUser(String uid) {
    return userDao.getById(uid);
  }
}
Run Code Online (Sandbox Code Playgroud)

java jax-rs

0
推荐指数
1
解决办法
1212
查看次数