小编Edd*_*Paz的帖子

如何配置Django Rest Framework以返回自定义文本的错误

我想在向数据库添加新项时自定义JSON响应,它返回以下内容.

HTTP 400 BAD REQUEST 
Content-Type: application/json Vary: 
Accept Allow: POST, OPTIONS

{
"nick": [
    "Users with this Nick already exists."
    ]
}
Run Code Online (Sandbox Code Playgroud)

{
"nick": [
    "Your username is empty"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我希望它返回(此用户名已存在,请使用其他用户名.)

要么

"Username %s already exists", (self.nick)
Run Code Online (Sandbox Code Playgroud)

我使用了以下示例,但如果值为空或无效,则无效.

def validate_title(self, attrs, source):
    """
    Check that the blog post is about Django.
    """
    value = attrs[source]
    if "django" not in value.lower():
        raise serializers.ValidationError("Blog post is not about Django")
    return attrs
Run Code Online (Sandbox Code Playgroud)

这是发送到API的JSON.

{
    "name": "myname",
    "nick":"",
    "type_account":"1",
    "email":"my-email@gmail.com",
    "pass_field":"12345" …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

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

Django-Rest-Framework AssertionError HTTPresponse预期

当我使用curl在终端上执行以下命令时

curl -X POST http://myuser:mypassword@myweb.com:8000/call/make-call/ -d "tutor=1&billed=1"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

AssertionError at/call/make-call /期望a Response, HttpResponse或者HttpStreamingResponse从视图返回,但是收到了<type 'NoneType'>

我的views.py是

@api_view(['GET', 'POST'])
def startCall(request):

    if request.method == 'POST':

        serializer = startCallSerializer(data=request.DATA)

        if serializer.is_valid():

            serializer.save()

            return Response(serializer.data, status=status.HTTP_201_CREATED)

        else:

            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

我的serializer.py是

class startCallSerializer(serializers.ModelSerializer):

    class Meta:
        model = call
        fields = ('tutor', 'billed', 'rate', 'opentok_sessionid')
Run Code Online (Sandbox Code Playgroud)

我的urls.py是

urlpatterns = patterns(
    'api.views',
    url(r'^call/make-call/$','startCall', name='startCall'),
)
Run Code Online (Sandbox Code Playgroud)

python django-rest-framework

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

如何修复Meta.fields不能是一个字符串.你的意思是输入:('name')

目前我有一个脚本,允许用户使用表单添加新酒店这是脚本.

我得到以下错误异常AddHotelForm.Meta.fields不能是一个字符串.你的意思是键入:('name',)?

请求方法:GET请求URL:8000/hotel/new Django版本:1.6.2异常类型:TypeError异常值:

AddHotelForm.Meta.fields不能是一个字符串.你的意思是键入:('name',)?

异常位置:/usr/local/lib/python2.7/dist-packages/django/forms/models.py in new,line 261

我似乎没有得到它我已经多次检查过,似乎没有找到解决方案.

views.py

from django.shortcuts import render_to_response
from forms import AddHotelForm
from django.http import HttpResponseRedirect
from django.core.context_processors import csrf
from hotel.models import hotel

def create(request):

    if request.POST:

         form = AddHotelForm(request.POST)

         if form.is_valid():

            form.save()

            return HttpResponseRedirect('/articles/all/')

    else:

         form = AddHotelForm()

    args = {}
    args.update(csrf(request))

    args['form'] = form

    return render_to_response('add_hotel.html', args)
Run Code Online (Sandbox Code Playgroud)

models.py

from django.db import models
from user.models import user


class hotel(models.Model):

    publisher = models.ForeignKey(user)
    name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100)
    creation_date = …
Run Code Online (Sandbox Code Playgroud)

python django

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

Kubernetes:哪个 Pod 在一个节点上使用最多的 CPU?

有什么方法可以使用kubectl命令列出节点上使用最多 CPU 的所有 POD 。我在官方文档中看不到这一点。

kubernetes kubectl

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

Django order_by()没有做正确的排序

Django在2个地方设置了以下查询,唯一的限制就是限制并给我不同的结果

这是以下QuerySet的第一个结果

list_empleados = empleado.objects.filter(
    empresa=session_empresa
).order_by('-puntos')[:3]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正确的结果应该是:

19,13,9而不是9,19,13看到我的意思?

这是第二个QuerySet

list_empleados = empleado.objects.filter(
    empresa=session_empresa
).order_by('puntos')
Run Code Online (Sandbox Code Playgroud)

这是结果

在此输入图像描述

正确的结果应该是:

19,13,9,1而不是1,13,19,9看到我的意思?

models.py

class empleado(models.Model):


    empresa = models.ForeignKey(empresa)
    nombre = models.CharField(max_length=50)

    fecha_nacimiento = models.DateField(auto_now_add=False)

    GENDER_CHOICES = (

        ('M', 'Masculino'),
        ('F', 'Femenino'),
    )

    sexo = models.CharField(max_length=1, choices=GENDER_CHOICES)

    avatar = StdImageField(upload_to='avatar/%Y/%m/%d', variations={
        'large': (300, 300, True),
        'medium': (50, 50, True),
        'thumbnail': (98, 122, True)})

    correo = models.EmailField(max_length=100)

    departamento = models.ForeignKey(departamento)

    telefono = models.CharField(max_length=21)
    direccion = models.CharField(max_length=200)
    twitter = models.CharField(max_length=15)
    usuario = models.CharField(max_length=15)
    password = models.CharField(max_length=40)
    primer_lugar …
Run Code Online (Sandbox Code Playgroud)

python django django-custom-tags

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

Logrus:如何打印 con 控制台日志

实施 Logrus Go 包。文件已保存,但停止在控制台上打印日志,仅在创建的名为供应商.log 的 .log 文件中可见。

这是当前使用的代码。


package logging

import (
    "fmt"
    "os"

    mylog "github.com/sirupsen/logrus"
)

// InitializeLogging asdas
func InitializeLogging(logFile string) {

    var file, err = os.OpenFile(logFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
    if err != nil {
        fmt.Println("Could Not Open Log File : " + err.Error())
    }
    mylog.SetOutput(file)

    //log.SetFormatter(&log.TextFormatter{})
    mylog.SetFormatter(&mylog.JSONFormatter{})
}
Run Code Online (Sandbox Code Playgroud)

logging go

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

AlamoFire:如何获得responseJSON值

目前我正在使用新的Swift库,名为AlamoFire,我希望在NSDictionary上获得JSON响应,或者在应用程序中使用它.

// Pasar Parametros al API
    let parameters = ["username": usuario.text,
        "password": contrasena.text,
        "type": "login_clients"]

    // Iniciar el POST request y esperar los datos y parsearlos
    Alamofire.request(.POST, "http://mycoolapi.com", parameters: parameters).responseJSON {

        (request, response, JSON, error) in

        // Imprimir JSON (response)
        var respuesta = JSON
        let transaccion = respuesta["transaction"]
        NSLog("Response: %@", transaccion)



        self.performSegueWithIdentifier("mostrar_menu", sender: self)


    }
Run Code Online (Sandbox Code Playgroud)

以下是行不通的,不知道我做错了什么?

swift alamofire

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