【发布时间】:2021-12-31 12:30:59
【问题描述】:
现在我正在学习 DRF,并且必须使用相册做项目。我的任务之一是使用模型字段“标题”创建自定义@action“补丁”方法,但我不明白如何在自定义方法中添加搜索字段。我们可以在基本方法中看到它们,例如“get”、“patch”和“put”,但我找不到任何有关如何将它们添加到自定义操作的信息。 如果有人知道怎么做,请告诉我。
我的模特:
class PhotoAlbum(models.Model):
title = models.CharField(verbose_name='Название альбома', max_length=50, null=True)
created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, verbose_name='Автор')
created_at = models.DateTimeField(verbose_name='Дата создания', editable=False,
default=datetime.datetime.today())
class Meta:
verbose_name = 'Фотоальбом'
verbose_name_plural = 'Фотоальбомы'
def __str__(self):
return f'{self.title} Автор: {self.created_by} Дата: {self.created_at}'
我的看法:
def photo_album_view(request):
photo_albums = PhotoAlbum.objects.all()
context = {
'photo_albums': photo_albums,
}
return render(request, 'photo_album.html', context=context)
我的观点:
class AlbumFilter(django_filters.FilterSet):
title = django_filters.Filter(field_name='title')
class PhotoAlbumViewSet(viewsets.ModelViewSet):
queryset = PhotoAlbum.objects.all()
filterset_class = AlbumFilter
serializer_class = PhotoAlbumSerializer
pagination_class = ResultPagination
filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter]
search_fields = ['title', ]
ordering_fields = ['created_at', ]
【问题讨论】:
-
您是否要将
put或patch数据写入PhotoAlbum类的title字段? -
@OmayerHasanMarif 我想添加补丁方法,但如果可能的话,我想知道如何为所有过滤器添加搜索和过滤器
标签: python django django-rest-framework django-swagger