小编Fiv*_*ver的帖子

向APIException添加自定义响应标头

我创建了一个引用http://django-rest-framework.org/api-guide/exceptions.html的自定义异常.

请知道我有自己的身份验证后端.因此我没有使用rest_framework的身份验证模块.

对于身份验证错误,我想将"WWW-Authenticate:Token"标头添加到从异常发送的响应中.

任何想法都会非常有帮助.

更新:

谢谢@Pathétique,这就是我最终要做的事情.

- 有一个名为BaseView的基础视图类.

- 在我的案例'WWW-Authenticate'中覆盖handle_exception方法来设置适当的标题.

这是代码:

class BaseView(APIView):
  def handle_exception(self, exc):
     if isinstance(exc, MYEXCEPTION):
        self.headers['WWW-Authenticate'] = "Token"
        return Response({'detail': exc.detail,
                        status=exc.status_code, exception=True)
Run Code Online (Sandbox Code Playgroud)

你的意见?

python django django-rest-framework

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

如何在pandas中使用argmin和groupby

假设我有一个像这样的pandas数据帧:

  cat  val
0   a    1
1   a    6
2   a   12
3   b    2
4   b    5
5   b   11
6   c    4
7   c   22
Run Code Online (Sandbox Code Playgroud)

我想知道,对于每个类别('cat'的每个值),值最接近给定值的位置是什么,比如说5.5.我可以减去我的目标值并取绝对值,给我这样的东西:

  cat  val  val_delt
0   a    1       4.5
1   a    6       0.5
2   a   12       6.5
3   b    2       3.5
4   b    5       0.5
5   b   11       5.5
6   c    4       1.5
7   c   22      16.5
Run Code Online (Sandbox Code Playgroud)

但是我不知道下一步要去哪里.我的第一个想法是使用argmin()和groupby(),但这给出了一个错误:

In [375]: df.groupby('cat').val_delt.argmin()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-375-a2c3dbc43c50> in <module>()
----> 1 df.groupby('cat').val_delt.argmin() …
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
3
解决办法
2543
查看次数

Django Rest Framework中的验证代码和消息

使用序列化程序中的开箱即用字段,验证错误消息如下所示:

{
    "product": [
        "This field must be unique."
    ],
    "price": [
        "This field is required."
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是,对于我正在编写的API,我想为每个失败的验证提供唯一的错误代码,以便客户端可以以编程方式响应验证错误,或者可以在UI中提供自己的自定义消息.理想情况下,错误json看起来像这样:

{
    "product": [
        {
          "code": "unique",
          "message": "This field must be unique."
        }
    ],
    "price": [
        { 
          "code": "required",
          "message": "This field is required."
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

使用ValidationErrors的当前方法使得这相当困难.查看代码,似乎目前不支持此类错误报告.但是,我正在寻找一种方法来覆盖错误处理以适应此模型.

django validation django-rest-framework

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

Django ModelForm 和 Model 实例保存方法的区别

我试图了解 Django 的 ModelForm 保存方法和直接保存 Model 实例之间的区别。

个人觉得直接保存更直观,数据保存时间显示更清晰。另外,如果我需要在保存之前修改实例,那么我必须使用模型保存方法,正如 Django 文档在此处解释的那样。

那么,一旦表单被验证,有什么区别呢?如果表单使用多个模型或其他一些更复杂的用例,会有什么不同吗?

如果重要的话,我正在使用 Django 1.4 版。下面是一些代码,显示了我如何倾向于保存经过验证的表单数据。

提前致谢!

# models.py
class Project(models.Model):
    project_name = models.CharField(unique=True, null=False, blank=False)

# views.py
def add_project(request):
    if request.method == 'POST':
        project = Project()
        form = ProjectForm(request.POST, instance=project)

        if form.is_valid():
            project.save() ### <-- project.save() vs form.save() ###

            return HttpResponseRedirect(reverse('view_project', args=(project.id,)))
    else:
        form = ProjectForm()

    return render_to_response(
        'add_project.html',
        {
            'form': form,
        },
        context_instance=RequestContext(request)
    )

# forms.py
class ProjectForm(ModelForm):
    class Meta:
        model = Project
Run Code Online (Sandbox Code Playgroud)

python django django-forms modelform

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

在 Django 管理面板中动态显示和隐藏字段

我已经定义了模型,其中一个文件有定义:

REPEAT = (
    ('day', 'Daily'),
    ('week', 'Weekly'),
)

repeats = models.CharField('Repeat', default='day', max_length=5, choices=REPEAT)
Run Code Online (Sandbox Code Playgroud)

我还定义了相关的管理模型,它负责在面板中显示我的主模型。

是否可以根据重复字段中的选择在管理面板中显示和隐藏某些字段?例如在风景中,当用户选择“每日”时,某些字段不是必需的,我想隐藏它们。我将不胜感激任何建议或提示。

django django-models django-admin

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

在AngularJs中使用$ resource来保存对象数组

我正在$resource使用查询从服务器检索数据.服务器返回一个对象数组,我存储在stuklijst中.我可以通过循环遍历数组并使用$ save将数组的每个项目发送回服务器,将stuklijst的(更新的)内容发送回服务器.我现在想要一次性将所有项目(整个stuklijst)发送到服务器,而不使用循环.

stuklijst上尝试$ save时,Angular会抛出"destination.push不是函数"错误.如何实现这一目标$resource

这是代码:

服务:

var stukModule = angular.module('stuklijstServices', ['ngResource'])
stukModule.factory('Stuklijsten', function($resource){
 return $resource('rest/stuklijsten/:stuklijstID', {} );
});
Run Code Online (Sandbox Code Playgroud)

控制器:

//Get the data from server      
  $scope.stuklijst = Stuklijsten.query({stuklijstID: $routeParams.stuklijstID});

//See below for sample of data returned by server
//Users can update the data and request a save using saveStuklijst

//Send them back to server (using saveStuklijst(Stuklijst))
  $scope.saveStuklijst = function(lijst) {
    //sending items from stuklijst one by one …
Run Code Online (Sandbox Code Playgroud)

arrays resources save angularjs

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

Django REST Framework中的否定或排除过滤器

我已经使用Django REST Framework已有很长时间了,但是遇到一种情况,我需要在API视图中检索除已知关系以外的所有内容。再次浏览文档后,我看不到任何内置的机制来实现此目的。我意识到我可以get_queryset()在ListView中覆盖并解析自定义URL查询参数,然后进行过滤,但是我很好奇是否还有其他人有更优雅的解决方案?

更新资料

经过更多研究后,这似乎更多是django-filter问题,我找不到提及任何排除功能的信息。我确实发现了这一点:

https://bitbucket.org/mjs7231/django-rest-framework-filtering

确实提供了从结果中排除的值。

python django django-filter django-rest-framework

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

三元组组合的递归 SPARQL 查询

我使用onspy在Python中递归运行以下查询:

SELECT ?c WHERE {
    ?c rdfs:subClassOf ?restriction .
    ?restriction owl:onProperty :has_part ; owl:someValuesFrom ?p .
    VALUES ?p { <some_uri> }
}
Run Code Online (Sandbox Code Playgroud)

基本上,我获取从中返回的值并重新运行查询以遵循本体中“具有部分”关系的层次结构。我希望通过向查询本身添加递归来避免进行多个 SPARQL 查询。我知道如何使用单个三元组执行此操作rdfs:subClassOf*,但无法弄清楚组合两个三元组的语法:

?c rdfs:subClassOf ?restriction .
?restriction owl:onProperty :has_part ; owl:someValuesFrom ?p .
Run Code Online (Sandbox Code Playgroud)

这可能吗?

python owl sparql

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

读取FCS文件

我正在研究流式细胞仪.我想使用python解析.fcs文件.我在互联网上研究过,有一个模块,fcm但是对于linux操作系统,我正在开发Windows.

我想知道如何使用python在Windows中解析.fcs文件?
如果有人知道如何fcm在Windows中使用,请让我知道.

python file

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

为什么Python正则表达式字符串有时可以不使用原始字符串?

Python建议在re模块中定义正则表达式时使用原始字符串.从Python文档:

正则表达式使用反斜杠字符('\')来表示特殊形式或允许使用特殊字符而不调用它们的特殊含义.这与Python在字符串文字中用于相同目的的相同字符的使用相冲突; 例如,要匹配文字反斜杠,可能必须将'\\'写为模式字符串,因为正则表达式必须为\,并且每个反斜杠必须在常规Python字符串文字中表示为\.

但是,在许多情况下,这不是必需的,无论是否使用原始字符串,都会得到相同的结果:

$ ipython

In [1]: import re

In [2]: m = re.search("\s(\d)\s", "a 3 c")

In [3]: m.groups()
Out[3]: ('3',)

In [4]: m = re.search(r"\s(\d)\s", "a 3 c")

In [5]: m.groups()
Out[5]: ('3',)
Run Code Online (Sandbox Code Playgroud)

然而,在某些情况下情况并非如此:

In [6]: m = re.search("\s(.)\1\s", "a 33 c")

In [7]: m.groups()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-12-84a8d9c174e2> in <module>()
----> 1 m.groups()

AttributeError: 'NoneType' object has no attribute 'groups'

In [8]: m = re.search(r"\s(.)\1\s", "a 33 c") …
Run Code Online (Sandbox Code Playgroud)

python regex string

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