小编roo*_*oob的帖子

如何更改差异颜色 Visual Studio Code

在 VSCode 的用户设置中,我可以将以下内容添加到用户设置中以更改插入/删除的行的颜色:

"workbench.colorCustomizations": {
    "diffEditor.removedTextBackground": "#000000",
    "diffEditor.insertedTextBackground": "#ffffff"
}
Run Code Online (Sandbox Code Playgroud)

但是,我想更改插入/更改行的突出显示部分的颜色,以显示实际更改的内容。以我目前的主题,没有足够的对比:

在此处输入图片说明

如何更改差异文本的突出显示部分?有这个设置吗?

themes visual-studio-code vscode-settings

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

返回对象列表作为字典,键作为对象id与django rest framerwork

目前,我有一个ListAPIView,它返回一个对象字典列表:

[
  { id: 1, ...},
  { id: 2, ...},
  ...
]
Run Code Online (Sandbox Code Playgroud)

我想将其更改为格式化为id为键的字典:

{
  "1": { id: 1, ...},
  "2": { id: 2, ...},
  ...
}
Run Code Online (Sandbox Code Playgroud)

如何使用Django Rest Framework以这种方式自定义输出?目前我正在重做格式化客户端,但我想做服务器端.

python api django dictionary django-rest-framework

11
推荐指数
2
解决办法
3041
查看次数

未定义硒测试后的功能

我正在尝试suite()使用 Javascript 使用 Selenium 的函数。

当我运行以下代码时出现问题

const { Builder, By, Key, until } = require("selenium-webdriver");
const { suite } = require("selenium-webdriver/testing");
suite(function (env) {
  describe("Log in", function () {
    let driver;

    before(async function () {
      driver = await env.builder().build();
    });

    after(() => driver.quit());

    it("demo", async function () {
      //some test
    });
  });
}); 
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ReferenceError: after is not defined

我认为这是摩卡的问题,因为文档为茉莉花和摩卡提供扩展。

我已经尝试过

yarn add mocha
yarn add Jasmine 
Run Code Online (Sandbox Code Playgroud)

但得到同样的错误。谁能解释一下“提供扩展”是什么意思?

javascript automated-tests jasmine

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

Django 日志记录不适用于 django shell

我在 Django 应用程序中设置了日志记录,以记录到标准输出和文件。

当我正常运行 django 应用程序时 ( ./manage.py runserver),日志会按预期更新。以下是当我访问以下视图的 url 时成功记录的示例:

# views.py

import logging
logger = logging.getLogger('mylogger')

def test(request):
    logger.error("test")
Run Code Online (Sandbox Code Playgroud)

但是,当我运行./manage.py shell并运行以下命令时,日志不会更新:

import logging
logger = logging.getLogger('mylogger')
logger.error('test')
Run Code Online (Sandbox Code Playgroud)

这是我在 settings.py 中的日志记录设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'stream': sys.stdout,
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '../debug.log',
        },
    },
    'loggers': {
        'mylogger': {
            'handlers': ['console', 'file'],
            'level': 'INFO',
            'propagate': True,
        },
    }
} …
Run Code Online (Sandbox Code Playgroud)

python django logging

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

predetch_related在Django REST框架序列化器中不适用于SerializerMethodField

我有一个具有嵌套序列化器字段的序列化器。我已经设置了热切的加载,并且一切都很好。

但是,我确实向嵌套字段添加了一些自定义过滤,这需要一个SerializerMethodField。

进行此更改后,与prefetch_related关联的预先加载不再起作用。如何使用SerializerMethodField优化序列化程序?

这是我最初的工作设置:

# views.py
class MyView(generics.ListAPIView):
    serializer_class = WorkingSerializer

    def get_queryset(self):
        queryset = MyModel.objects.all()
        queryset = self.get_serializer_class().setup_eager_loading(queryset)
        return queryset

# serializers.py
class WorkingSerializer(serializers.ModelSerializer):
    related_field_name = CustomSerializer(many=True)

    @staticmethod
    def setup_eager_loading(queryset):
        queryset = queryset.prefetch_related('related_field_name')
        return queryset
Run Code Online (Sandbox Code Playgroud)

这是我更改的序列化器不起作用:

# serializers.py
class NotWorkingSerializer(serializers.ModelSerializer):
    related_field_name = serializers.SerializerMethodField('get_related_field')

    def get_related_field(self, instance):
        queryset = instance.related_field_name.all()
        # some filtering done here
        return queryset

    @staticmethod
    def setup_eager_loading(queryset):
        queryset = queryset.prefetch_related('related_field_name')
        return queryset
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

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

AWS Amplify:DevTools 无法加载 SourceMap:JSON 中位置 0 处出现意外标记 <

在 Google Chrome 上加载我的网站时,我收到了一些类似于以下内容的警告:

DevTools failed to load SourceMap: Could not parse content for https://mywebsite.com/static/js/2.abcd1234.chunk.js.map: Unexpected token < in JSON at position 0
Run Code Online (Sandbox Code Playgroud)

我的 web 应用程序是部署在 AWS Amplify 上的 React 应用程序 (create-react-app)。在本地运行应用程序时,我没有收到这些警告。我如何摆脱这些警告?

google-chrome react-router create-react-app aws-amplify

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

从promise返回的对象是未定义的

我试图将getstream API包装在角度服务(工厂)中

这是我的代码:

.factory('FeedStream', function($http, $q) {

    var client = stream.connect('xxxxxxxxxxx');

    return {
        feed : function() {
            $http.get('/api/feed/auth/')
            .success(function(auth) {

                var user_feed = client.feed('user', auth.user, auth.token);
                console.log(user_feed.get());

                user_feed.get().then(function(data) { 
                    console.log(data);
                    return data;
                })
            })
        },
    }
Run Code Online (Sandbox Code Playgroud)

首先,我使用端点/ api/feed/auth /从我的服务器获取user_id和auth令牌.这个数据以有角度的承诺返回.

接下来,我使用此数据调用getstream api来获取user_feed对象.如果我返回此对象(user_feed),则在控制器中未定义.如果我在服务中将其打印到控制台,则它具有正确的值.我注意到在返回后打印发生了半秒左右.为什么这个变量的赋值是异步发生的?

现在,如果我在console.log语句中调用getuser_feed对象上的方法,则会打印出一个Javascript promise对象.如果我return user_feed.get()它返回undefined控制器.如果我在上面的代码中在服务中调用它,并在promise then语句中返回数据对象,它将返回undefined到控制器.但是,如果我打印data对象,它具有正确的值.

为什么我不能从此服务返回任何对象?我错过了使用承诺的一些基本方面吗?

javascript promise angularjs angular-promise getstream-io

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

为什么在三个js中增加物体的比例时fps会下降

我有一个场景,只有一个摄像头和一个 PlaneBufferGeometry

如果我将这架飞机尺寸设为 1x1,我会得到 60fps

如果我将这架飞机尺寸设为 1000x1000,我会得到 <20fps

为什么会发生这种情况?我在屏幕上绘制相同数量的顶点。

这是一个显示问题的小提琴

只需size在 1 到 1000 之间更改定义即可观察问题。

var size = 10000;
//size = 1;
var geometry = new THREE.PlaneBufferGeometry(size, size);
Run Code Online (Sandbox Code Playgroud)

我在这个例子中添加了 50 个相同的平面。只有一架飞机没有显着的 fps 命中率。

rendering frame-rate three.js

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

Django 视图返回过时的数据,在服务器重新启动后修复

我有一个带有 postgresql 数据库的 Django 网络服务器。

我有一个视图(Django REST 框架),它表现出奇怪的行为。

该视图列出表中最新记录的日期。记录始终每分钟多次添加到该表中。我没有对此视图实施任何缓存。

今天我观察到以下几点:

  • 生产服务器上的视图返回过时的数据(2 天前的最新数据)
  • 本地开发服务器上的视图(连接到同一远程数据库)返回了新数据
  • 在生产服务器上运行的视图./manage.py shell返回了新数据
  • 我从两天前起就没有重新启动过生产服务器
  • 今天重启生产服务器后,视图中的数据又是新鲜的
  • 30 分钟后,数据现在已过时 30 分钟

可能是什么原因造成的?为什么我必须刷新与数据库的连接才能获取新数据?

相关代码:

# models.py
class MyModel(models.Model):
    name = models.CharField(max_length=255)

    def get_data(self,
            start_date=timezone.now()-timedelta(hours=24),
            end_date=timezone.now()):
        latest_data = self.data.filter(date__gte=start_date, date__lte=end_date).latest('date')
        return {
            'latest': latest_data.date
        }


class MyOtherModel(models.Model):
    date = models.DateTimeField()
    foreign_key = models.ForeignKey(MyModel, related_name='data')


# views.py
class MyView(generics.ListAPIView):
    serializer_class = MySerializer
    def get_queryset(self):
        queryset = MyModel.objects.all()


# serializers.py
class MySerializer(serializers.ModelSerializer):
    data = serializers.DictField(source="get_data")

    class Meta:
        model = MyModel
        fields = …
Run Code Online (Sandbox Code Playgroud)

database django postgresql orm

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

在JavaScript中创建的HTML表单不响应.submit

我已经使用javascript动态地在我的html页面中添加了一个表单.当我这样做时,表单上的.submit不起作用.但是,如果我在html中创建完全相同的表单,它将按预期工作.

这是一个小提琴:http://jsfiddle.net/dwha77g4/4/

以下代码:

$('.submit-form').submit(function(e){
    alert("test");
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

在小提琴中的第一个按钮上运行,但不是第二个动态创建的按钮.

html javascript forms jquery

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