Объект Django – ReverseManyToOneDescriptor ‘не имеет атрибута’ all ‘

Вопрос:Я вижу много связанных вопросов с моими, и когда я их проверю, из того, что я вижу, мой код должен работать, но я получаю ошибку ниже? модели: class Circuits(models.Model): site_data = models.ForeignKey(SiteData,verbose_name="Site") order_no = models.CharField(max_length=200,verbose_name="Order No") expected_install_date = models.DateField() install_date = models.DateField(blank=True,null=True) circuit_type = models.CharField(max_length=100,choices=settings.CIRCUIT_CHOICES) circuit_preference = models.CharField(max_length=20,verbose_name="Circuit Preference",choices=settings.CIRCUIT_PREFERENCE,blank=True,null=True) circuit_speed = models.IntegerField(blank=True,null=True) circuit_bearer = models.IntegerField(blank=True,null=True)

Вопрос:

Я вижу много связанных вопросов с моими, и когда я их проверю, из того, что я вижу, мой код должен работать, но я получаю ошибку ниже?

модели:

class Circuits(models.Model): site_data = models.ForeignKey(SiteData,verbose_name=»Site») order_no = models.CharField(max_length=200,verbose_name=»Order No») expected_install_date = models.DateField() install_date = models.DateField(blank=True,null=True) circuit_type = models.CharField(max_length=100,choices=settings.CIRCUIT_CHOICES) circuit_preference = models.CharField(max_length=20,verbose_name=»Circuit Preference»,choices=settings.CIRCUIT_PREFERENCE,blank=True,null=True) circuit_speed = models.IntegerField(blank=True,null=True) circuit_bearer = models.IntegerField(blank=True,null=True) class CircuitMaintenance(models.Model): circuit = models.ForeignKey(Circuits,verbose_name=»Circuit», related_name=’maintenance’) ref = models.CharField(max_length=200,verbose_name=»Ref No») start_time = models.DateTimeField() end_time = models.DateTimeField() notes = models.TextField(blank=True,null=True)

Ошибка

circuits = Circuits.objects.filter(site_data__id=1) for i in Circuits.maintenance.all(): print i AttributeError: ‘ReverseManyToOneDescriptor’ object has no attribute ‘all’

EDIT:
с поправкой на нижний регистр c все еще получают ошибку:

>>> from sites.models import Circuits >>> circuits = Circuits.objects.filter(site_data__id=1) >>> for i in circuits.maintenance.all(): … print i … Traceback (most recent call last): File «<console>», line 1, in <module> AttributeError: ‘QuerySet’ object has no attribute ‘maintenance’ >>> Лучший ответ:

Вам нужно использовать переменную circuits

circuits = Circuits.objects.filter(site_data__id=1) for cm in circuits: maintenances = cm.maintenance.all() for maintenance in maintenances: print(maintenance )

Если вы не определили related_name, вы можете сделать:

circuits.circuitmaintenance_set.all() :

Оцените статью
Добавить комментарий