MyNameIsHaruo
MyNameIsHaruo

Reputation: 17

QuerySet in Django - returns exception

I am trying to understand how exactly query works on Django, i followed the tutorials it´s not working I am not sure what i am doing wrong.

When I run

BeneficientePagar.objects.filter(nome__contains="Joao Pedro") 

it returns

"Choices are %s" %s (name, ",".join(available))) django.core.exceptions.FieldError: Cannot resolve keyword "nome into field. Choices are: ID, beneficiente, beneficiente_id,join, join_id, moeda

from django.db import models

# Create your models here.

class Moeda(models.Model):
    moeda_ficticia = models.FloatField()

class Join(models.Model):
    nome = models.CharField(max_length=150)
    nascimento = models.DateField()
    cpf = models.IntegerField(primary_key=True)
    endereco = models.CharField(max_length=150)
    email = models.EmailField()

    def __str__(self):
        return self.nome

class Beneficiente(models.Model):
    ID = models.AutoField(primary_key=True)
    nome = models.CharField(max_length=150)
    CNPJ = models.IntegerField(max_length = 10)
    def __str__(self):
        return self.nome

class Favores(models.Model):
    ID = models.AutoField(primary_key=True)
    favor = models.CharField(max_length=150)
    dataInserido = models.DateField()
    usuarios = models.ForeignKey(Join)
    def __str__(self):
        return self.favor

class BeneficientePagar(models.Model):
    ID = models.AutoField(primary_key=True)
    moeda = models.IntegerField()
    beneficiente = models.ForeignKey(Beneficiente)
    join = models.ForeignKey(Join)
    def __str__(self):
        return self.ID

Thanks in advance

Upvotes: 0

Views: 103

Answers (2)

warath-coder
warath-coder

Reputation: 2122

If using BeneficientPager, you need to do

BeneficientePagar.objects.filter(beneficient__nome__contains="Joao Pedro") 

Upvotes: 1

Alasdair
Alasdair

Reputation: 308849

You are getting the error because nome is a field on Beneficiente, not BeneficientePagar.

You can either do

Beneficiente.objects.filter(nome__contains="Joao Pedro") 

which will return a queryset of Beneficientes. Or if you need BeneficientePagar you can query through the foreign key.

BeneficientePagar.objects.filter(beneficiente__nome__contains="Joao Pedro")

Upvotes: 0

Related Questions