小编Bor*_*kov的帖子

Function.prototype.bind.apply()无法按预期工作

我有一个函数,myfunc并希望将bind它作为一个特定的this参数和其他参数bind作为单个数组,而不是参数列表(因为我将参数列表作为函数的参数,执行此代码).为此目的,我使用applybind,如下所示:

var myfunc = function(arg1, arg2){
    alert("this = " + this + ", arg1 = " + arg1 + ", arg2 = " + arg2);
}
var bindedMyfunc = myfunc.bind.apply("mythis", ["param1", "param2"]);
bindedMufunc();
Run Code Online (Sandbox Code Playgroud)

这导致了Uncaught TypeError: Bind must be called on a function.

我究竟做错了什么?你能否详细解释一下,当我运行这段代码时会发生什么,导致现实似乎与我的看法相矛盾?

答案摘要: 似乎它bind本身有自己的this参数,它是函数,它被调用.例如,当你说myfunc.bind(args),bindthismyfunc.

通过调用applybind我已经mistakingly分配bind的这'mythis’,这是不是一个功能,bind不能在叫. …

javascript functional-programming function-binding

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

Django REST框架GET嵌套序列化程序产生错误:'RelatedManager'对象没有属性'datafile_set'"

我有一个2级深度的嵌套序列化器:

class ToolSerialier(serializers.ModelSerializer):
    input = ToolInputSerializer()

    class Meta:
        model = Tool
        fields = ('docker_image', 'input')

class ToolInputSerializer(serializers.ModelSerializer):
    datafile_set = ToolInputDatafileSerializer(many=True)

    class Meta:
        model = ToolInput
        fields = ('datafile_set', )

class ToolInputDatafileSerializer(serializers.ModelSerializer):
    class Meta:
        model = ToolInputDatafile
        fields = ('name', 'file')
Run Code Online (Sandbox Code Playgroud)

和各自的型号:

class Tool(models.Model):
    docker_image = models.CharField(max_length=255, null=True, blank=True)

class ToolInput(models.Model):
    tool = models.ForeignKey(Tool, related_name="input")

class ToolInputDatafile(models.Model):
        tool_input = models.ForeignKey(ToolInput, related_name="datafile_set")
        name = models.CharField(max_length=255)
        file = jsonfield.JSONField()
Run Code Online (Sandbox Code Playgroud)

现在,当我向ToolSerializers列表端点发送GET请求时,收到一条错误消息:

AttributeError at /api/tool/

Got AttributeError when attempting to get a value for field …
Run Code Online (Sandbox Code Playgroud)

django rest django-rest-framework

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

uWSGI 作为 HTTP 服务器:在 config.ini 选项中称为 `http-socket`,而不是 `http`

我正在尝试将 uWSGI 用作独立的 http 服务器,而不是 uwsgi 服务器。

这是我的配置文件mysite.ini

[uwsgi]
chdir = /srv/workflows
module = workflows.wsgi:application
plugin = python

# We can receive connections either via http or from frontend via uwsgi socket

# http:
http = 0.0.0.0:8000

# uwsgi:
#socket = 0.0.0.0:8000
#chmod-socket = 664

vacuum = true
master = true
need-app = true
processes = 10
harakiri  = 20
max-requests = 5000
Run Code Online (Sandbox Code Playgroud)

所以,我使用了 http 选项并注释掉了socketchmod-socket选项。

为了回应 uWSGI 诅咒:

uWSGI: --s/--socket option is missing …
Run Code Online (Sandbox Code Playgroud)

django wsgi uwsgi

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

这里不允许使用nginx"env"指令

我用nginxdocker-compose,并希望docker-compose传递SERVER_NAMEnginx作为环境变量.我创建了以下nginx配置文件:

myconf.conf:

# Environment variables are used to dynamically set SERVER_NAME
# from docker-defined environment variable. This logic  is stolen from:
#
# https://docs.apitools.com/blog/2014/07/02/using-environment-variables-in-nginx-conf.html
# https://github.com/wantedly/nginx-image-server/blob/master/files/nginx.conf

env SERVER_NAME;

upstream django {
    server workflows-django:8000;
}

server {
    listen 80;
    perl_set $server_name_from_env 'sub { return $ENV{"SERVER_NAME"}; }';
    server_name $server_name_from_env;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    perl_set $server_name_from_env 'sub { return $ENV{"SERVER_NAME"}; }';

    server_name $server_name_from_env;
    ssl_certificate /etc/ssl/private/bostongene.crt;
    ssl_certificate_key /etc/ssl/private/bostongene.key;
    charset …
Run Code Online (Sandbox Code Playgroud)

nginx docker-compose

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

python:无法解释的无限递归与__repr__

这是一段代码,它进入一个无限递归循环,它只包含__repr__函数,似乎在调用自身.但我真的看不到它是怎么称呼它自己的.而且,我甚至无法理解,它是如何被称为:

class MyList(list): #this is storage for MyDict objects
    def __init__(self):
        super(MyList, self).__init__()

class MyDict(dict):
    def __init__(self, mylist):
        self.mylist = mylist #mydict remembers mylist, to which it belongs
    def __hash__(self):
        return id(self)
    def __eq__(self, other):
        return self is other
    def __repr__(self):
        return str(self.mylist.index(self)) #!!!this is the crazy repr, going into recursion
    def __str__(self):
        return str(self.__repr__())

mylist = MyList()
mydict = MyDict(mylist)
mydict.update({1:2})
print str(mylist.index(mydict)) #here we die :(
Run Code Online (Sandbox Code Playgroud)

执行此代码会导致:

Traceback (most recent call last):
  File "test_analogue.py", line 20, …
Run Code Online (Sandbox Code Playgroud)

python debugging recursion repr

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

Django jsonfields ValidationError:[u'Enter valid JSON']从1.7升级到1.9

我将django从1.7升级到1.9,通过更换软件包安装在系统(Debian 8)中,通过apt-get软件包安装,通过安装pip.

所以,我jsonfield从pip 安装了包而不是apt的旧版本python-django-jsonfield并尝试运行unittests.

所有我的jsonfields,定义为jsonfield.JSONField(),使消息测试失败:

ValidationError: [u'Enter valid JSON']
Run Code Online (Sandbox Code Playgroud)

一切都运转良好.任何想法,改变了什么?

django django-jsonfield

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

PyQt:将QTabWidget.tabClos​​eRequested连接到插槽的正确方法

我有一个带有QTabWidget的简单示例PyQt应用程序.我无法将QTabWidget的tabClos​​eRequested信号连接到插槽,以便正确关闭选项卡:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class Application(object):
    def __init__(self):
        app = QApplication(sys.argv)

        self.window = QMainWindow()

        self.notebook = QTabWidget()
        self.notebook.tabBar().setTabsClosable(True)
        self.notebook.tabBar().setMovable(True)

        self.notebook.tabCloseRequested.connect(self.close_handler)

        self.window.setCentralWidget(self.notebook)

        page1 = QWidget()
        self.notebook.addTab(page1, "page1")
        page2 = QWidget()
        self.notebook.addTab(page2, "page2")

        self.window.show()
        sys.exit(app.exec_())

    def close_handler(self, index):
        print "close_handler called, index = %s" % index
        self.notebook.removeTab(index)

if __name__ == "__main__":
    app = Application()                               
Run Code Online (Sandbox Code Playgroud)

当我点击关闭按钮时,没有任何反应.甚至不应该调用打印!我究竟做错了什么?

user-interface qt pyqt

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

nvm在哪里存储node.js安装?

我找不到node.js安装的位置,通过例如下载和安装:

nvm install 5.0
Run Code Online (Sandbox Code Playgroud)

你知道答案吗?

javascript node.js npm nvm

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

如何在 Dockerfile 中本地安装 pip 包?

我正在尝试从 github 克隆一个 python 包,然后将其安装在本地,pip -e如下所示:

RUN git clone https://github.com/st4lk/django-rest-social-auth.git
RUN pip install -e django-rest-social-auth
Run Code Online (Sandbox Code Playgroud)

但我收到错误消息:

Step 6 : RUN pip install -e django-rest-social-auth
 ---> Running in 8943e688573f
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2476, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2190, in load
    ['__name__'])
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 74, in <module>
    from pip.vcs import git, mercurial, subversion, …
Run Code Online (Sandbox Code Playgroud)

git pip github docker

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

Django:无法从设置导入自定义变量

mongo_db在 settings.py 中定义了一个自定义变量:

# connect to test database for tests and real database otherwise
if is_test():
    mongo_db = mongoengine.connect(db='test-workflows', host='workflows-mongo')
else:
    mongo_db = mongoengine.connect(db='workflows', host='workflows-mongo')
Run Code Online (Sandbox Code Playgroud)

现在,我试图从tests.py(或从python manage.py shell)导入它,但都没有成功:

from django.conf import settings
settings.mongo_db
AttributeError: 'Settings' object has no attribute 'mongo_db'
Run Code Online (Sandbox Code Playgroud)

怎么了?

更新: IIRC,Djangodjango.conf.settings通过django.conf.global_settings使用在settings.py.

因此,可能有问题的from django.conf import settings; settings.mongo_db是 Django 可能不会更新django.conf.settingsmongo_db,因为它不在默认选项中。

此外,Django 文档说django.conf.settings是一个object,而不是一个module,所以你不能说from django.conf.settings …

django

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