小编Esc*_*her的帖子

如何计算给定因子中每个级别的值数?

我有一个mydf大约2500行的data.frame .这些行对应于colum 1中的69个对象类mydf$V1,我想计算每个对象类有多少行.我可以通过以下方式获得这些类的因子:

objectclasses = unique(factor(mydf$V1, exclude="1"));
Run Code Online (Sandbox Code Playgroud)

什么是计算每个对象类的行的简洁R方法?如果这是任何其他语言,我将遍历一个带循环的数组并保持计数,但我是R编程的新手,并且我正在尝试利用R的矢量化操作.

r frequency count

28
推荐指数
6
解决办法
12万
查看次数

makemigrations不会检测模型中的更改

我正在使用django 1.9.6.我最近删除了我的迁移和跑migrate --run-syncdbmakemigrations my_app.今天我在我的一个模型中添加了一个新字段:

models.py:

value = models.PositiveSmallIntegerField(null=True)
Run Code Online (Sandbox Code Playgroud)

我尝试迁移更改,但未makemigrations检测到更改.它只是开发版本,因此我可以重新同步(我不必保留数据),但--run-syncdb再次运行也不会检测到它.

为什么不迁移?

migration django

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

如何在DRF中的ListSerializer父类上访问serializer.data?

我在尝试访问serializer.data之前遇到错误,然后返回Response(serializer.data, status=something):

尝试获取<field>序列化程序字段的值时获取KeyError <serializer>.

这发生在所有字段上(因为事实证明我试图访问.data父节点而不是子节点,见下文)

类定义如下所示:

class BulkProductSerializer(serializers.ModelSerializer):

    list_serializer_class = CustomProductListSerializer

    user = serializers.CharField(source='fk_user.username', read_only=False)

    class Meta:
        model = Product
        fields = (
            'user',
            'uuid',
            'product_code',
            ...,
        )
Run Code Online (Sandbox Code Playgroud)

CustomProductListSerializer是一个serializers.ListSerializer有一个重写的save()方法,允许它正确处理批量创建和更新.

以下是批量产品的示例视图ViewSet:

def partial_update(self, request):

    serializer = self.get_serializer(data=request.data,
                        many=isinstance(request.data, list),
                        partial=True)
    if not serializer.is_valid():
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    serializer.save()
    pdb.set_trace()
    return Response(serializer.data, status=status.HTTP_200_OK)
Run Code Online (Sandbox Code Playgroud)

试图访问serializer.data跟踪(或明显后面的行)会导致错误.这是完整的跟踪(tl; dr跳过下面我用调试器诊断的地方):

 Traceback (most recent call last):
  File "/lib/python3.5/site-packages/django/core/handlers/exception.py", line 41, in …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

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

python gettext错误:无法隐式地将'__proxy__'对象转换为str

我突然在以前工作的代码中遇到了一个奇怪的错误.我最近从1.9.4升级到Django 1.9.6.

在我的一个观点中,我有:

from django.contrib import messages
from django.utils.translation import ugettext_lazy as _

messages.success(request, str( _('A string with a ') +
    '<a target="_blank" href="/preview/' + mymodel.hash + '">' +
    _('link!') + '</a>.'), extra_tags="safehtml"
    )
Run Code Online (Sandbox Code Playgroud)

这现在给出了TypeError最后一行的第二行:

Can't convert '__proxy__' object to str implicitly
Run Code Online (Sandbox Code Playgroud)

为什么?我该如何解决?

编辑:

这可以通过将第二个调用包装到ugettext_lazy()in中来解决str()(即代码变为str( _('link!') ).这样做可以使视图呈现正常.现在我的问题是:为什么?整个复合字符串已经包含在内str(),正如我所说,这段代码与之前版本的django一起工作得很好.这是一个错误吗?

python django gettext

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

如何在Django Rest Framework中删除批量实例?

在DRF的DefaultRouter url路由器中,它需要一个{lookup}参数来将DELETE请求路由到a的destroy方法ModelViewSet(因此,您将请求将对象实例删除到端点{prefix}/{lookup}/).

这适用于删除单个实例,但我想将该功能扩展为在单个请求中删除多个实例.假设lookup调用参数并调用uuid模型Product.这是一个扩展版本destroy:

 def destroy(self, request, uuid=None):
    """
    Overridden method allows either url parameter of single UUID 
    (to delete a single instance), or multiple query parameters `uuids`
    to delete multiple instances.
    """
    if not uuid:
        uuids = request.query_params.get('uuids', None)
        if not uuids:
            return Response(status=status.HTTP_404_NOT_FOUND)
        if len(uuids) != Product.objects.filter(uuid__in=uuids).count():
            return Response(status=status.HTTP_404_NOT_FOUND)
        Product.objects.filter(uuid__in=uuids).delete()
    else:
        instance = self.get_object(uuid)
        if not instance:
            return Response(status=status.HTTP_404_NOT_FOUND)
        instance.delete()
     return Response(status=status.HTTP_204_NO_CONTENT) …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

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

如何在单个序列化程序中合并来自两个不同来源(没有RDBMS关系)的数据?

我正在尝试序列化一些对象,这些对象的数据存储在2个数据库中,由通用UUID链接.第二个数据库DB2存储个人数据,因此它作为隔离的微服务运行,以符合各种隐私法.我将数据作为解码的dicts列表(而不是模型实例的实际查询集)接收.如何调整ModelSerializer序列化这些数据?

这是与DB2交互以获取个人数据的最小示例:

# returns a list of dict objects, approx representing PersonalData.__dict__
# `custom_filter` is a wrapper for the Microservice API using `requests`
personal_data = Microservice.objects.custom_filter(uuid__in=uuids)
Run Code Online (Sandbox Code Playgroud)

这是一种序列化的最小方式,包括出生日期:

class PersonalDataSerializer(serializers.Serializer):
    uuid = serializers.UUIDField() # common UUID in DB1 and DB2
    dob = serializers.DateField() # personal, so can't be stored in DB1
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我需要将Person查询集和相关的序列personal_data化为一个JSON数组.

class PersonSerializer(serializers.ModelSerializer):
    dob = serializers.SerializerMethodField()
    # can't use RelatedField for `dob` because the relationship isn't
    # codified in the RDBMS, due to it being a …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

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

addEventListener("click",...)立即触发

我正在尝试创建一些适当放置的教学工具提示,用户点击这些工具提示以了解网站界面的工作原理.每个工具提示都有一个"下一个"链接,通过修改类(因此,css)来切换上一个和下一个工具提示的可见性.

这是一些应该这样做的简化代码:

function displayTooltip(t){
  //...some code to determine the tooltip IDs "next" and "previous"
  document.getElementById(previous).className = "tooltip invisibleTooltip";
  document.getElementById(next).className = "tooltip";
}

document.getElementById("tooltip-link1").addEventListener("click", displayTooltip(2));
Run Code Online (Sandbox Code Playgroud)

displayTooltip当我将此代码粘贴到控制台(或页面加载)时,立即调用(并正确切换类).如果我更换displayTooltipalert(),当我点击,如预期触发.我究竟做错了什么?

html javascript

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

如何测试gunicorn是否正常工作并与nginx通信?

我正在部署我第一次尝试使用django + gunicorn + nginx.

  • 我有django工作(curl -XGET http://127.0.0.0.1:8000如果我运行开发服务器,工作正常).
  • 我有nginx工作静态内容(例如我可以http://example.com/static/my_pic.png在我的浏览器中检索).
  • 我没有从我的网站上获得任何wsgi内容,但我找不到一个好的故障排除指南(它是否适用于其他所有人?!).我使用supervisor启动gunicorn,它报告它确实在运行:

(在shell :)

supervisorctl status my_app
my_app                   RUNNING    pid 1002, uptime 0:29:51
Run Code Online (Sandbox Code Playgroud)

这是我用来启动它的样板脚本:

#!/bin/bash
#script variables
NAME="gunicorn_myapp"                      # Name of process
DJANGODIR=/webapps/www/my_project          # Django project directory
SOCKFILE=/webapps/www/run/gunicorn.sock    # communicte using this socket
USER=app_user                              # the user to run as
GROUP=webapps                              # the group to run as
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=my_project.settings # settings file
DJANGO_WSGI_MODULE=my_project.wsgi         # WSGI module name

# Activate the virtual environment
cd $DJANGODIR
source ../bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE …
Run Code Online (Sandbox Code Playgroud)

django nginx gunicorn

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

如何在django 2中注册DRF路由器URL模式

我的DRF路由器指定了一个命名空间,以便我可以使用reverse我的URL:

urls.py:

router = DefaultRouter()
router.register('widget/', MyWidgetViewSet, base_name='widgets')
urlpatterns =+ [
    url(r'/path/to/API/', include(router.urls, namespace='widget-api'),
]
Run Code Online (Sandbox Code Playgroud)

其中,升级到django 2时,会给出:

django.core.exceptions.ImproperlyConfigured:不支持在include()中指定名称空间而不提供app_name.在包含的模块中设置app_name属性,或者传递包含模式列表和app_name的2元组.

Django的2 现在要求 app_name如果namespace使用时指定kwarg include.什么是指定app_nameDRF url路由器构建url模式的正确方法?我不认为django 2 的文档是关于这个主题的最新文档.

django django-rest-framework

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

如何为 pq 驱动程序准备具有动态表名的 INSERT 语句

如何为INSERTpq postgres 驱动程序的准备语句使用动态表名称?目前我有一个包含id SERIALvalues TEXT列的测试表,并且此语句失败:

stmt, err := db.Prepare("INSERT INTO $1(values) VALUES($2);")
if err != nil {
    log.Fatal(err)
}
Run Code Online (Sandbox Code Playgroud)

这是失败的:

pq:“$1”处或附近的语法错误

如果我只能使用值的占位符而不是表名,有没有办法Sprintf在这里使用?表名包含string来自用户输入的内容,尽管我可以对其进行清理,但与让 Postgres 在准备好的语句上返回错误相比,它会稍微减慢插入速度。

go pq

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