小编jup*_*iar的帖子

如何在Reactjs的新react-router-dom中使用Redirect

我正在使用最新版本的react-router模块,名为react-router-dom,在使用React开发Web应用程序时已成为默认设置.我想知道如何在POST请求后进行重定向.我一直在制作这段代码,但在请求之后,没有任何反应.我在网上查看,但所有数据都是关于反应路由器的先前版本,而不是最后一次更新.

码:

import React, { PropTypes } from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import { Redirect } from 'react-router'

import SignUpForm from '../../register/components/SignUpForm';
import styles from './PagesStyles.css';
import axios from 'axios';
import Footer from '../../shared/components/Footer';

class SignUpPage extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      errors: {},
      client: {
        userclient: '',
        clientname: '',
        clientbusinessname: '',
        password: '',
        confirmPassword: ''
      }
    };

    this.processForm = this.processForm.bind(this);
    this.changeClient = this.changeClient.bind(this);
  }

  changeClient(event) {
    const field = …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router

94
推荐指数
7
解决办法
19万
查看次数

Postgresql Docker角色不存在

我下载了postgres的docker容器:https://hub.docker.com/r/library/postgres/,并执行了以下操作:

$ docker run --name satgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
satgres | "docker-entrypoint.s…" | 5 seconds ago | Up 6 seconds | 0.0.0.0:5432->5432/tcp | satgres
$ docker exec -it c8f1b22cc41e /bin/bash        
# psql -U postgres
psql (10.1)
postgres=# CREATE DATABASE mytest;
postgres=# \password postgres
postgres=# CREATE ROLE ming WITH LOGIN PASSWORD 'pass1234';
postgres=# ALTER ROLE ming CREATEDB;
postgres=# CREATE DATABASE sjk;
postgres=# GRANT ALL PRIVILEGES ON DATABASE youtube TO ming;
postgres=# \connect sjk
youtube=# …
Run Code Online (Sandbox Code Playgroud)

database postgresql docker

14
推荐指数
3
解决办法
2万
查看次数

使用 drf-yasg,如何提供模式?

我已经安装了 drf-yasg,它运行良好。我遇到的问题是它是一个很大的应用程序,并且对于每种类型的前端客户端都有大量的端点,即/admin/v1, /app/v1, ...

所以我认为将每种类型的文档分开是个好主意,即

urlpatterns += [
     url(r'^/admin/swagger/$', admin_schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
     url(r'^/app/swagger/$', app_schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
]
Run Code Online (Sandbox Code Playgroud)

所以看起来 drf-yasg 支持这一点,通过提供patternsget_scheme_view

admin_schema_view = get_schema_view(
    openapi.Info(
        title="API",
        default_version='v1',
        description="The set of API endpoints used.",
        terms_of_service="https://www.google.com/policies/terms/",
        contact=openapi.Contact(email="contact@me"),
        license=openapi.License(name="BSD License"),
    ),
    patterns=?????,
    validators=['flex', 'ssv'],
    public=True,
    permission_classes=(permissions.AllowAny,),
)
Run Code Online (Sandbox Code Playgroud)

现在我的猜测是提供一个字符串,与定义时的第一个字符串相同urls,例如patterns=r'^admin/v1/',导致:

File "/usr/local/lib/python3.6/dist- packages/rest_framework/compat.py", line 55, in get_original_route
return urlpattern.regex.pattern
AttributeError: 'str' object has no attribute 'regex'
Run Code Online (Sandbox Code Playgroud)

因此,使用drf-yasg docs 中的文档

模式 - 如果给定,则只会枚举这些模式以包含在 API …

django swagger django-rest-framework

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

使用 drf-yasg,如何在响应中支持多个序列化程序?

我的 drf 的响应仅包含单个序列化程序给出的数据,我们可以将其实现为:

@swagger_auto_schema(
    operation_id='ID example',
    operation_description="Description example.",
    responses={status.HTTP_200_OK: Serializer4ModelA(many=True)},
)
Run Code Online (Sandbox Code Playgroud)

效果很好,但是有些请求构建了一个字典,其中两个或三个键对应于不同的序列化程序,例如

response = {
    "a": serializer_data_for_model_a,
    "b": serializer_data_for_model_b,
    "c": serializer_data_for_model_c
}
Run Code Online (Sandbox Code Playgroud)

我们如何在自动模式中描述它?我尝试了几种不同的方法,大多类似于以下方法:

@swagger_auto_schema(
    operation_id='ID example',
    operation_description="Description example.",
    responses={status.HTTP_200_OK: openapi.Response(
        description='response description',
        schema=openapi.Schema(
            type=openapi.TYPE_OBJECT,
            properties={
                'a': Serializer4ModelA(many=True),
                'b': Serializer4ModelB(many=True),
                'c': Serializer4ModelC(many=True)
            })
    )}
)
Run Code Online (Sandbox Code Playgroud)

但是在加载文档时总是失败,并flex说:

"/usr/local/lib/python3.6/site-packages/flex/utils.py", line 125, in 
get_type_for_value raise ValueError("Unable to identify type of 
{0}".format(repr(value)))
ValueError: Unable to identify type of 
Serializer4ModelA(many=True):
Run Code Online (Sandbox Code Playgroud)

我一遍又一遍地阅读文档,并在 github 上搜索了一个例子,但我找不到一个例子或任何人这样做。所以我的问题是如何成功为响应手动定义架构,该架构包含针对返回响应中不同键的不同序列化程序?

django swagger django-rest-framework

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