Я хочу получить URL-адрес изображения внешнего ключа проекта в таблице категорий проекта.
models.py:
class ProjectCategory(MPTTModel):
name = models.CharField(max_length = 100)
slug = models.SlugField()
banner = models.ImageField(upload_to='Project_banner', default = 'demo/demo.png')
first_image = models.ForeignKey('ProjectImage',on_delete=models.SET_NULL,null=True)
parent = TreeForeignKey('self',blank=True, null=True, related_name='children', on_delete=models.CASCADE, db_index = True)
class ProjectImage(models.Model):
title = models.CharField(max_length = 100)
image = models.ImageField(upload_to='projectimage', default = 'demo/demo.png')
watermark_thumb = models.ImageField(upload_to='thumbs', blank=True, null=True)
thumbnail = models.ImageField(upload_to='thumbs', blank=True, null=True)
category = models.ForeignKey('ProjectCategory', null=True, blank=True, on_delete=models.CASCADE,)
description = models.TextField(max_length=1000)
created_at = models.DateTimeField(default=now, editable=True)
def __str__(self):
return self.title
serializers.py:
class ProjectCategorySerializer(serializers.ModelSerializer):
children = ProjectSubCategroySerializer(many=True, required=False)
class Meta:
model = ProjectCategory
fields = ('id','name','slug','banner','first_image','parent','children')
def get_fields(self):
fields = super().get_fields()
fields['children'] = ProjectCategorySerializer(many=True, read_only=True)
return fields
views.py:
class ProjectCategoryView(generics.ListCreateAPIView):
authentication_classes = []
permission_classes = []
pagination_class = None
queryset = ProjectCategory.objects.filter(parent__isnull=True).order_by('id')
serializer_class = ProjectCategorySerializer
urls.py:
path('projectcategories/',views.ProjectCategoryView.as_view()),
........................ .....................................