Simple comptage du nombre d'enregistrements dans la table ManyToMany
class Author(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
friends = models.ManyToManyField('self', blank=True)
class Publisher(models.Model):
name = models.CharField(max_length=300)
num_awards = models.IntegerField()
class Book(models.Model):
isbn = models.CharField(max_length=9)
name = models.CharField(max_length=300)
pages = models.IntegerField()
price = models.DecimalField(max_digits=10, decimal_places=2)
rating = models.FloatField()
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
pubdate = models.DateField()
class Store(models.Model):
name = models.CharField(max_length=300)
books = models.ManyToManyField(Book)
Je pense que je suis absent quelque chose de vraiment évident, mais comment puis-je obtenir un nombre pour le nombre de documents créés dans ce plusieurs-à-plusieurs table authors = models.ManyToManyField(Author)
?
OriginalL'auteur super9 | 2011-07-11
Vous devez vous connecter pour publier un commentaire.
Découvrez les docs, c'est assez simple:
Mise à jour:
La question d'origine était de demander une liste de tous les Auteurs dans la base de données, ne cherche pas une liste d'auteurs par livre.
Pour obtenir une liste de tous les auteurs dans la base de données:
[0]
partie ne se trouve pas n'importe où, même dans le lien que vous avez incorporé.Le
[0]
sélectionne simplement le premierBook
dans le queryset. C'est la même chose que de dire:Book.objects.get(pk=1)
(en supposant que le premierBook
a la clé primaire de1
).Donc, Si je ne
Book.objects.get(pk=1)
, je vais obtenir le même résultat àb = Book.objects.all()[0]
dans mon compte?Je ne comprends pas pourquoi j'ai besoin de sélectionner le premier livre dans le but de faire un compte sur le champ d'auteurs qui peuvent contenir de nombreux autres livres?
Oui. C'est exactement la même chose que de travailler avec une liste. Je suis juste en tirant le premier élément de la liste pour des raisons de concision.
OriginalL'auteur Jack M.