小编Mat*_*tko的帖子

如何更改DRF中的验证错误响应?

我想更改JSON,当发生验证错误时,rest_framework或django会返回.

我将使用我的一个视图作为示例,但我想更改所有视图的错误消息.所以,我想这个观点意味着登录用户,提供电子邮件和密码.如果这些是正确的,则返回access_token.

如果我只发布密码,则返回错误400:

{"email": ["This field is required."]}
Run Code Online (Sandbox Code Playgroud)

如果密码和电子邮件不匹配:

{"detail": ["Unable to log in with provided credentials."]}
Run Code Online (Sandbox Code Playgroud)

我想要的更像是:

{"errors": [{"field": "email", "message": "This field is required."}]}

{"errors": [{"non-field-error": "Unable to log in with provided credentials."}]}
Run Code Online (Sandbox Code Playgroud)

现在这是我的观点:

class OurLoginObtainAuthToken(APIView):
    permission_classes = (AllowAny,)
    serializer_class = serializers.AuthTokenSerializer
    model = Token

    def post(self, request):
        serializer = self.serializer_class(data=request.DATA)
        if serializer.is_valid():
            #some magic
            return Response(token)           
        return Response(serializers.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

我可以访问serializer.errors并更改它们,但看起来只能以这种方式访问​​字段错误,如何更改在序列化程序验证方法中创建的验证错误?

这是我的序列化程序(它与rest_framework.authtoken.serializers.AuthTokenSerializer是相同的序列化程序)但已编辑,因此身份验证不需要用户名但电子邮件:

class AuthTokenSerializer(serializers.Serializer):
    email = serializers.CharField()
    password = serializers.CharField() …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

12
推荐指数
2
解决办法
7308
查看次数

错误:在遵循angularjs官方教程时无法找到chromedriver

起初我不得不说这是我第一次接触angularjs和node.js所以这可能是一个愚蠢的问题,但我想学习使用angularjs所以我按照本教程https://docs.angularjs.org/教程和一切都按预期进行,直到我开始运行End End to End Tests部分.

当我运行此命令时:

npm run update-webdriver
Run Code Online (Sandbox Code Playgroud)

它说:

selenium standalone is up to date. 
chromedriver is up to date.
Run Code Online (Sandbox Code Playgroud)

然后我打开本地服务器:

npm start
Run Code Online (Sandbox Code Playgroud)

在运行时我运行测试:

npm run protractor
Run Code Online (Sandbox Code Playgroud)

在我的终端中导致:o

直接使用ChromeDriver ...

[launcher]错误:在/home/qw/www/angular-phonecat/node_modules/protractor/selenium/chromedriver.exe找不到chromedriver

文件chromedriver.exe确实不存在(有chromedriver_2.10.zip),我真的不认为.exe文件应该在那里,考虑到我使用ubuntu 14.04(本教程应该是角度版本是1.4.0).

对于某些Windows版本,这是一个tuto吗?

任何人都可以帮助我(初学者可以理解的方式:))?

selenium node.js npm angularjs selenium-webdriver

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

Swagger codegen to Java Spring 从二进制格式的 OpenAPI 组件生成不正确的文件响应实体

我正在使用 swagger-codegen-maven-plugin 从 OpenAPI 文件(OpenAPI 3.0.2)生成 Spring 接口

<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.14</version>
Run Code Online (Sandbox Code Playgroud)

一个rest API的响应应该是PDF文件

components:
    schemas:
        contractFile:
            type: string
            format: binary
Run Code Online (Sandbox Code Playgroud)

生成的 Java REST 接口然后包含以下方法

default ResponseEntity<File> getContract(@ApiParam(value = "File to download",required=true) @PathVariable("uid") String uid) {
...
}
Run Code Online (Sandbox Code Playgroud)

File 类表示文件系统的路径,但我在文件系统上没有文件,只有 Java 内存中的字节,我不想将它们作为文件保存到磁盘。

我希望 getContract 从内存中的 Stream/bytes 返回一些 StreamResource 或其他一些文件表示。是否可以通过 swagger-codegen-maven-plugin 或其他一些选项来实现?

java spring swagger openapi swagger-codegen

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

如何使用 DRF 中的一个请求创建多个对象(相关)?

我有一个代表工作的类,一个代表描述工作的标签的类,然后我有一个类在它们之间建立关系(连接表),因此工作可以由多个标签描述:

class JobTag(models.Model):
    job = models.ForeignKey(Job, unique=False, related_name='jobtags')
    tag = models.ForeignKey(Tag, unique=False, related_name='Tag_For_Job')

    created_time = models.DateTimeField(auto_now_add = True)
    modified_time = models.DateTimeField(auto_now = True)

    class Meta:
        unique_together = ('job', 'tag',)

    def __unicode__(self):
        return 'Tag '+self.tag.name +' for job '+ self.job.name
Run Code Online (Sandbox Code Playgroud)

然后我有序列化程序:

class TagSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Tag
        fields = ('url','name','badge_pic')
        read_only_fields = ('name','badge_pic')

class JobTagSerializer(serializers.HyperlinkedModelSerializer):
    tag = TagSerializer()
    class Meta:
        model = JobTag
        fields = ('tag',)
        depth=1

class JobSerializer(serializers.HyperlinkedModelSerializer):
    jobtags=JobTagSerializer(many=True)
    class Meta:
        model = Job
        fields = ('url','name', 'employer','jobtags','description')
        read_only_fields …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

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

如何输入[type = text]来填充剩余的水平空间?

有没有人知道怎么做?我创建了这个小提琴http://jsfiddle.net/matusko/2pctr9ok/3/,我想做的就是输入的行为与上面的div相同.

CSS:

.left {
    float:left;
    width:180px;
    background-color:#ff0000;
}
.right {
    width: 100%;
    background-color:#00FF00;
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div>
    <div class="left">
        left
    </div>
    <div class="right">
        right
    </div>
</div>
<br/>
<div>
    <div class="left">
        left
    </div>
    <input type="text" placeholder="right" class="right"/>
</div>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么输入不像div那样,即使当专业检查员说它的显示是阻塞的.

html css

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

sails-postgresql AdapterError:数据库适配器出现意外错误:没有参数$ 1

我对sails很新,我试图在postgresql db中创建一个身份验证模式.

我有一个用户模型

module.exports = {
  attributes: {
    firstName: {
      type: 'string'
    },
    lastName: {
      type: 'string'
    },
    email: {
      type: 'string',
      required: true,
      unique: true
    },
    password: {
      type: 'string',
      required: true
    },
    authTokens: {
      collection: 'authToken',
      via: 'owner'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

和用户注册/创建控制器

module.exports = {

  create: function (req, res) {
    sails.log.info("Message to be logged");
    User.create(
      {
        email: req.body.email,
        firstName: req.body.firstName,
        lastName: req.body.lastName,
        password: req.body.password
      }
    ).exec(function (err) {
      if (err) {
        return res.status(400).send({err: err});
      } else {
        return …
Run Code Online (Sandbox Code Playgroud)

postgresql sails.js waterline sails-postgresql

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