J'ai modèles suivants:Django: construit un QuerySet dans une vue?
class Place(models.Model):
name = models.CharField(max_length=300)
class Person(models.Model):
name = models.CharField(max_length=300)
class Manor(models.Model):
place = models.ManyToManyField(Place, related_name="place"))
lord = models.ManyToManyField(Person, related_name="lord")
overlord = models.ManyToManyField(Person, related_name="overlord")
Je veux tous les lieux attachés à la relation « seigneur » à une personne, puis obtenir le centre, en utilisant une méthode GeoDjango. Ceci est aussi loin que j'ai:
person = get_object_or_404(Person, namesidx=namesidx)
manors = Manor.objects.filter(lord=person)
places = []
for manor in manors:
place_queryset = manor.place.all()
for place in place_queryset:
places.append(place)
if places.collect():
centre = places.collect().centroid
Cependant, cela me donne:
AttributeError at /name/208460/gamal-of-shottle/
'list' object has no attribute 'collect'
Puis-je (a) faire d'une façon plus élégante pour obtenir un QuerySet des lieux de retour directement, ou (b) construire un QuerySet plutôt qu'une liste dans ma vue?
Merci pour votre aide!