Я пытаюсь использовать сериализатор, чтобы получить все места в модели, которые соответствуют логическим условиям в ее модели. Я пытаюсь получить все места, которые соответствуют условию "Спонсируется". Вот что у меня есть:
Модель
class Venue(models.Model):
venue_name = models.CharField(max_length=500, blank=False)
venue_photo = models.ImageField(upload_to= ‘venue_photo/', blank=False, default='')
venue_logo = models.ImageField(upload_to= ‘venue_logo/', blank=False, default='')
description = models.CharField(max_length=250, blank=True)
phone = models.CharField(max_length=500, blank=True)
ratings = models.FloatField(default="0.0", blank=True)
sponsored_venue = models.BooleanField(default=False)
signup = models.DateTimeField(default = timezone.now)
last_signin = models.DateTimeField(default = timezone.now)
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name=‘venue')
Сериализатор
class VenueSerializer(serializers.ModelSerializer):
venue_logo = serializers.SerializerMethodField()
venue_photo = serializers.SerializerMethodField()
opening_hours = OpeningHoursSerializer(
many=True, source='openinghours_set', read_only=True)
# shows these fields from each venue signed up
def get_venue_logo(self, venue):
request = self.context.get('request')
venue_logo_url = venue.venue_logo.url
if venue_logo_url:
return request.build_absolute_uri(venue_logo_url)
return ""
def get_venue_photo(self, venue):
request = self.context.get('request')
venue_photo_url = venue.venue_photo.url
if venue_photo_url:
return request.build_absolute_uri(venue_photo_url)
return ""
class Meta:
model = venue
fields = ("id", "venue_name", "phone", "street_address", "venue_logo", "venue_photo",
"street_address", "city", "state", "zip_Code", "lat", "lng", 'latlng', 'opening_hours', "ratings")