我无法使用queryset参数过滤 SlugRelatedField 的可能选项。这是我的序列化程序
class AttendeeProfileSerializer(serializers.HyperlinkedModelSerializer):
"""
Profile Serializer
"""
user = serializers.SlugRelatedField(slug_field='username', queryset=User.objects.all())
module = serializers.SlugRelatedField(slug_field='id', queryset=AttendeeModule.objects.all())
picture = serializers.ImageField(allow_empty_file=False, required=False)
class Meta:
model = AttendeeProfile
fields = (
'user', 'module', 'title', 'company', 'email', 'picture', 'is_active', 'created'
)
Run Code Online (Sandbox Code Playgroud)
我想过滤模块字段,一个 laserializers.SlugRelatedField(slug_field='id', queryset=AttendeeModule.objects.filter(module__app='module__app')或类似的东西,其中每个模块都属于一个应用程序。
我想我需要通过视图为序列化程序提供更多上下文?我应该覆盖视图上的方法吗?我已经尝试过,但我对 Django rest 框架还是个新手,这给我带来了很多麻烦
观点是
class AttendeesList(generics.ListCreateAPIView):
"""
"""
queryset = AttendeeProfile.objects.all()
serializer_class = AttendeeProfileSerializer
Run Code Online (Sandbox Code Playgroud)
并使用这条路线
url(r'^apps/(?P<url_name>[a-z][a-z0-9]+)/modules/(?P<module_id>[0-9]+)/attendees$',
views.AttendeesList.as_view(),
name='attendees-list'),
Run Code Online (Sandbox Code Playgroud)