Invertendo uma relação ManyToMany

votos
2

Eu tenho Meninos e brinquedos. Dois modelos Django. Os brinquedos podem ser de propriedade de mais de um menino e cada menino pode possuir mais de um brinquedo ... Então eu coloquei um campo ManyToMany no menino.

Se eu quiser uma lista de brinquedos propriedade de um único menino, é fácil. Tudo bem até agora.

Mas agora eu preciso para obter uma lista de Meninos com base em uma instância Toy. A relação deve ser simétrico, mas eu não sei a sintaxe.


Nota: Não, estes não são os meus nomes entidade real - Eu só pensei que poderia ser mais fácil de seguir.

Publicado 27/01/2009 em 14:24
fonte usuário
Em outras línguas...                            


2 respostas

votos
6

Deveria ser:

toy_instance.boy_set.all ()

Veja aqui:

http://docs.djangoproject.com/en/dev/topics/db/queries/#many-to-many-relationships

Respondeu 27/01/2009 em 15:13
fonte usuário

votos
3
from django.db import models

class Toy(models.Model):
    name = models.CharField('Name', max_length=250)

    def __unicode__(self):
        return self.name

class Boy(models.Model):
    name = models.CharField('Name', max_length=250)
    toys_owned = models.ManyToManyField(Toy, blank = True)

    def __unicode__(self):
        return self.name

se brinquedo = é instância da classe Toy, então toy.boy_set.all () é o que você procura

Respondeu 27/01/2009 em 15:14
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more