小编Lel*_*uch的帖子

Django REST Framework上传图片:"提交的数据不是文件"

我倾向于如何在Django中上传文件,在这里我遇到一个应该是微不足道的问题,错误:

提交的数据不是文件.检查表单上的编码类型.

以下是详细信息.


注意:我也查看了Django Rest Framework ImageField,我试过了

serializer = ImageSerializer(data=request.data, files=request.FILES)
Run Code Online (Sandbox Code Playgroud)

但我明白了

TypeError:__init__()得到一个意外的关键字参数'files'


我有一个Image模型,我想通过Django REST框架进行交互:

models.py

class Image(models.Model):
    image = models.ImageField(upload_to='item_images')
    owner = models.ForeignKey(
        User, related_name='uploaded_item_images',
        blank=False,
    )
    time_created = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

serializers.py

class ImageSerializer(serializers.ModelSerializer):
    image = serializers.ImageField(
        max_length=None, use_url=True,
    )

    class Meta:
        model = Image
        fields = ("id", 'image', 'owner', 'time_created', )
Run Code Online (Sandbox Code Playgroud)

settings.py

'DEFAULT_PARSER_CLASSES': (
    'rest_framework.parsers.JSONParser',
    'rest_framework.parsers.FormParser',
    'rest_framework.parsers.MultiPartParser',
),
Run Code Online (Sandbox Code Playgroud)

前端(使用AngularJS和angular-restmod$resource)发送JSON与数据ownerimage下面的形式:

输入:

{"owner": 5, …
Run Code Online (Sandbox Code Playgroud)

python django angularjs django-rest-framework

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

python中的webbrowser.open()

我有一个python文件html_gen.py,它在同一目录中写一个新html文件index.html,并希望index.html在写完成时打开它.

所以我写了

import webbrowser
webbrowser.open("index.html");
Run Code Online (Sandbox Code Playgroud)

但是在执行.py文件后没有任何反应.如果我改为放一个代码

webbrowser.open("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

Safari将在执行代码时打开谷歌首页.

我想知道如何打开本地index.html文件?

html python

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

Django:模型通过中间模型有两个ManyToMany关系

所以我是Django的新手,想要描述一下这个场景:有一堆Persons,有一堆Items,一个人传给Items另一个人Person.

我有以下型号:

class Item(models.Model):
    title = models.CharField(max_length=1024, blank=False)

    def __unicode__(self):
        return self.title

class Person(models.Model):
    name = models.CharField(max_length=127, blank=False)
    out_item = models.ManyToManyField(
        Item,
        through='Event',
        through_fields=('from_user', 'item'),
        related_name='giver'
    )
    in_item = models.ManyToManyField(
        Item,
        through='Event',
        through_fields=('to_user', 'item'),
        related_name='receiver'
    )

    def __unicode__(self):
        return self.name

class Event(models.Model):
    item = models.ForeignKey(Item)
    from_user = models.ForeignKey(Person, related_name='event_as_giver')
    to_user = models.ForeignKey(Person, related_name='event_as_receiver')
Run Code Online (Sandbox Code Playgroud)

makemigrations告诉我app.Person: (models.E003) The model has two many-to-many relations through the intermediate model 'app.Event'.

我不知道我做错了什么?或者实现这种情况的干净方法是什么?也许我可以分开Event进去 …

django django-models

12
推荐指数
1
解决办法
2183
查看次数

将变量传递给AngularJS指令而不使用隔离范围

我学习AngularJS指令,并有一件事我想要做的是通过一些变量$scope.message在父scope(一scopecontroller),我希望它被重新命名为param里面的directive alert.我可以用一个孤立的范围做到这一点:

<div alert param="message"></div>
Run Code Online (Sandbox Code Playgroud)

并定义

.directive("alert", function(){
    return{
        restrict: "A",
        scope: {
            param: "="
        },
        link: function(scope){
            console.log(scope.param) # log the message correctly
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

但是,如果不使用隔离范围,我可以做到吗?假设我要另加directive toast<div toast alert></div>与使用相同param(保持2路数据绑定),天真的我会做

.directive("toast", function(){
    return{
        restrict: "A",
        scope: {
            param: "="
        },
        link: function(scope){
            console.log(scope.param)
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

我肯定会收到错误 Multiple directives [alert, toast] asking for new/isolated scope on:<div...

总而言之,我的问题是,如何在没有隔离范围的情况下重命名父范围变量,以及如何在两个directives放置在单个范围内时共享变量DOM

angularjs angularjs-directive angularjs-scope

11
推荐指数
1
解决办法
8723
查看次数

numpy:带缩进的打印数组

我想numpy array用缩进打印以进行调试。

说我有一个array a = numpy.array([[1,2,3,4], [5,6,7,8]]),然后简单的print(a)会给

[[ 63 903 942 952]
 [185 332 511 893]]
Run Code Online (Sandbox Code Playgroud)

现在如果我\t输入print("\t" + str(a)),那么我得到

    [[ 63 903 942 952]
 [185 332 511 893]]
Run Code Online (Sandbox Code Playgroud)

虽然我想拥有

    [[ 63 903 942 952]
     [185 332 511 893]]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

在pandas DataFrame中向左移动非空单元格

假设我有表格的数据

Name    h1    h2    h3    h4
A       1     nan   2     3
B       nan   nan   1     3
C       1     3     2     nan
Run Code Online (Sandbox Code Playgroud)

我想将所有非纳米细胞向左移动(或收集新列中的所有非纳米数据),同时保持从左到右的顺序,

Name    h1    h2    h3    h4
A       1     2     3     nan
B       1     3     nan   nan
C       1     3     2     nan
Run Code Online (Sandbox Code Playgroud)

我当然可以一行一行地这样做.但我希望知道是否还有其他方法可以提高性能.

python pandas

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

Fortran 未分配数组

我刚开始学习 Fortran,遇到了这个问题。考虑下面的简单代码。

PROGRAM random

INTEGER, DIMENSION(12):: array
PRINT *, array

END PROGRAM random
Run Code Online (Sandbox Code Playgroud)

array未分配的值,但可以打印,它似乎有一些随机的因素和一些零元素。但是,如果我考虑更短的数组,请说我声明

INTEGER, DIMENSION(5):: array
Run Code Online (Sandbox Code Playgroud)

那么打印的数组的所有元素都为 0。我想知道这里发生了什么?

variables fortran unassigned-variable

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

Fortran CHARACTER(LEN =*)仅适用于伪参数或PARAMETER

我想打印以下输出

*****
****
***
**
*
Run Code Online (Sandbox Code Playgroud)

使用递归子程序.我的代码如下:

PROGRAM PS
IMPLICIT NONE

CALL print_star(5, '*')

CONTAINS
    RECURSIVE SUBROUTINE print_star(n, star)
    INTEGER :: n
    CHARACTER(LEN = *) :: star
    CHARACTER(LEN = *) :: new_star
    IF (n > 1) THEN
        new_star = star // '*'
        CALL print_star(n - 1, new_star)
    END IF
    print *, star
    END SUBROUTINE print_star
END PROGRAM PS
Run Code Online (Sandbox Code Playgroud)

然后它返回错误:

 CHARACTER(LEN = *) :: new_star
                           1
Error: Entity with assumed character length at (1) must be a dummy argument or a …
Run Code Online (Sandbox Code Playgroud)

recursion fortran character

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

连接派生表

编辑:我正在使用 phpMyAdmin 界面,并且我已经将代码从 phpMyAdmin 复制/粘贴到此处。当我运行以下代码时,phpMyAdmin 似乎运行了一个“不同的代码”,并生成了一些引用该“不同代码”的错误消息,造成了巨大的混乱。

** 最终编辑:似乎是 Safari 造成的:当我尝试运行下面的第二个查询时,它运行“不同的查询”。改用 Firefox,它会生成正确的结果。感谢您的帮助,并对造成的混乱表示抱歉。**

我有两个表:newsFeeds、comments、where

** newsFeeds 包含列 PID,comments 包含列 FID。**

我想用匹配的 PID = FID 连接两个表中的行。我的代码是:

SELECT * FROM newsFeeds
INNER JOIN
(
    SELECT * FROM
    comments
)
ON comments.FID = newsFeeds.PID
Run Code Online (Sandbox Code Playgroud)

错误消息是“#1248 - 每个派生表都必须有自己的别名”。

然后我加入AS newtb后,)根据这里的其他职位。然后代码是:

SELECT * FROM newsFeeds
INNER JOIN
(
    SELECT * FROM
    comments
) AS newtb
ON newtb.FID = newsFeeds.PID
Run Code Online (Sandbox Code Playgroud)

但是出现了另一个错误: #1064 - You have an error in your SQL syntax; check the manual …

mysql inner-join

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

python 2.7.6和3.3.3导致不同的递归

我写的递归一个简单的分类代码,我测试它Python 2.7.6Python 3.3.3.但我得到了两个不同的结果.代码如下.

import math, copy, random, sys
call_count = 0;    # Keep track of number of times of stooge_sort() get called
swap_count = 0;    # Keep track of number of times swapping.
def stooge_sort(a, origin):
    global call_count, swap_count;
    call_count += 1;
    n = len(a);
    m = int(math.ceil(n*2/3));
    if(n == 2 and a[0] > a[1]):
        a[0], a[1] = a[1], a[0];
        swap_count += 1;
    elif (n > 2):
        first = copy.deepcopy(a[0:m]);
        a[0:m] = stooge_sort(first, origin);
        second = …
Run Code Online (Sandbox Code Playgroud)

python sorting algorithm

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