Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

251
Visualizações
TypeError: Object of type 'Category'(model) is not JSON serializable

Model class:

class Category(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

The controller that works with model:

class AjaxLayoutView():

@login_required
def categories_ajax(request):
    categories = Category.objects.all()
    cats = serializers.serialize('json', categories)
    return HttpResponse(
        json.dumps(cats),
        content_type="application/json"
    )

TypeError: Object of type 'Category' is not JSON serializable But in response in JavaScript with next code:

    $.getJSON( "/categories/ajax/", function( json ) {
    var src = JSON.parse(json);
    console.log(src);
    var valuesFromCategorys = [];

    for(var i=0;i<src.length;i++)
      valuesFromCategorys[i] = src[i].fields.name;
    console.log(src);

  $('#patient_category').editable({
    type: 'select',
    title: 'Оберіть нову категорію',
    source: valuesFromCategorys,
    ajaxOptions: { type:'POST'},
    params: function(params) {
      var objRequest = {category: params.value, pk:params.pk};
      console.log(params.value);
      return objRequest;
    },
    success: function(response, newValue) {
       console.log(response);
    }
  })
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Try to iterate over object and then make a list or dictionary . then try json.dumps we can not dumps object directly.

@login_required
def categories_ajax(request):
categories = Category.objects.all()

cats= json.dumps([(dict(row.items())) for row in categories])
return HttpResponse(
    json.dumps(cats),
    content_type="application/json"
)
over 4 years ago · Santiago Trujillo Relatório

0

Since your view is returning an array of objects, you can access any serialized value like this:

$.getJSON("/categories/ajax/", function(json) {
    var src = JSON.parse(json);
    for (var i = 0; i < src.length; i++) {
        var category = src[i];
        console.log(category.fields.<field_name>);
    }
});
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda