AttributeError: объект 'RelatedManager' не имеет атрибута 'scheduled_datetime'
Я пытаюсь использовать это для добавления набора объектов в лид. Проблема в том, что мне нужно дополнительное поле для даты и времени запланированного тура для каждого из объектов, которые я добавляю в лид. Таким образом, когда я создаю лид и добавляю в него объекты, у меня есть дополнительное поле, в которое я могу ввести дату и время, а затем получить доступ к нему в виде списка объектов с датами их туров на странице лидов.
Я получаю следующую ошибку каждый раз, когда пытаюсь отправить что-либо с помощью запроса put:
File "/serializers.py", line 256, in to_representation representation["scheduled_datetime"] = instance.leadfacilityassociation.scheduled_datetime
AttributeError: объект 'RelatedManager' не имеет атрибута 'scheduled_datetime'
models.py
class Facility(models.Model):
name = models.CharField(max_length=150, null=True, blank=False)
main_image = models.ImageField(null=True, blank=True)
email = models.EmailField(max_length=150, null=True, blank=True)
telephone_number = models.CharField(max_length=30, null=True, blank=True)
facility_description = models.TextField(max_length=1000, null=True, blank=True)
def __str__(self):
return self.Name
class Lead(models.Model):
first_name = models.CharField(max_length=40, null=True, blank=True)
last_name = models.CharField(max_length=40, null=True, blank=True)
def __str__(self):
return f"{self.first_name} {self.last_name}"
class LeadFacilityAssociation(models.Model):
assigned_facilities = models.ForeignKey(Facility, related_name='leadfacilityassociation')
lead = models.ForeignKey(Lead, related_name='leadfacilityassociation')
scheduled_datetime = models.DateTimeField(null=True, blank=True)
serializers.py
class LeadUpdateSerializer(serializers.ModelSerializer):
is_owner = serializers.SerializerMethodField()
assigned_facilities = serializers.IntegerField(required=False)
scheduled_datetime = serializers.DateTimeField(required=False)
class Meta:
model = Lead
fields = (
"id",
"assigned_facilities",
"scheduled_datetime",
"is_owner",
)
read_only_fields = ("id")
def get_is_owner(self, obj):
user = self.context["request"].user
return obj.agent == user
def create(self, validated_data):
assigned_facilities = validated_data.pop("assigned_facilities")
scheduled_datetime = validated_data.pop("scheduled_datetime")
instance = Lead.objects.create(**validated_data)
instance.leadfacilityassociation.create(assigned_facilities=assigned_facilities,scheduled_datetime=scheduled_datetime)
return instance
def to_representation(self, instance):
representation = super().to_representation(instance)
representation["scheduled_datetime"] = str(instance.leadfacilityassociation.first().scheduled_datetime)
representation["assigned_facilities"] = instance.leadfacilityassociation.first().assigned_facilities
return representation