Cela devrait être très simple, je pouvais le faire sans penser à SQL traditionnelle, mais ne peut l'obtenir avec des modèles Django!Comment accéder au modèle avec seulement deux clés étrangères?
J'ai un modèle avec deux clés étrangères pour créer plusieurs à plusieurs - Je n'utilise pas beaucoup de champ beaucoup dans Django
class Story(models.Model):
title = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __unicode__(self):
return self.title
class Category(models.Model):
categoryText = models.CharField(max_length=50)
parentCat = models.ForeignKey('self',null=True,blank=True)
def __unicode__(self):
return self.categoryText
class StoryCat(models.Model):
story = models.ForeignKey(Poll,null=True,blank=True)
category = models.ForeignKey(Category,null=True,blank=True)
def __unicode__(self):
return self.story
Je voudrais interroger pour une catégorie comme « courte », et récupérer toutes les clés uniques de toutes les histoires retournées.
c = Category.objects.get (categoryText = 'courte')
s = StoryCat.objects.get (catégorie = c)
quand j'essaye ceci j'obtiens une erreur que plusieurs rangées ont été retournées. Je veux juste récupérer les valeurs d'id mais je ne semble pas être capable de comprendre comment faire cela.
Comment puis-je obtenir les valeurs id qui sont retournés?
FWIW, la notation commune pour les noms de champs, utiliser des traits de soulignement, c'est-à-dire 'category_text' au lieu de' categoryText', voir [PEP8] (http://www.python.org/dev/peps/pep-0008/). Je sais que Django peut convertir automatiquement les underscores en espaces et les capitaliser de manière appropriée lorsqu'il génère automatiquement des noms de champs dans des endroits tels que les formulaires de modèles et l'admin. Je ne suis pas sûr comment/si il gère camelcase. Bonne chance –