'I'm trying to return mutliply queryset
I have endpoin called groups I want to return to each user groups that he created and the groups that he member in it my model
class Group(models.Model):
title = models.CharField(max_length=100,blank=False,default='')
project = models.ForeignKey('Project',related_name='groups',on_delete=models.CASCADE)
owner = models.ForeignKey('auth.User',related_name='group',on_delete=models.CASCADE)
member = models.ManyToManyField('auth.User',related_name='group_members')
created = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
def __str__(self):
return self.title
here is my serializer
class GroupSerializer(serializers.HyperlinkedModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username')
class Meta:
model = Group
fields = ('url','title','owner','member','created','active','project',)
here is my view
class GroupViewSet(viewsets.ModelViewSet):
"""
This viewset automatically provides `list` and `detail` actions.
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
permission_classes = (
permissions.IsAuthenticated,)
def get_queryset(self):
queryset = self.queryset
query_set = queryset.filter(owner=self.request.user)
query_set1 = queryset.filter(member=self.request.user)
return list(chain(query_set)) + list(chain(query_set1))
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
this view work with me but in the Group Instance return "detail": "Not found."
here is my urls
router = DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'projects', views.ProjectViewSet)
router.register(r'tasks', views.TaskViewSet)
router.register(r'groups', views.GroupViewSet)
# The API URLs are now determined automatically by the router.
# Additionally, we include the login URLs for the browsable API.
urlpatterns = [
re_path(r'^', include(router.urls))
]
sorry my english is not good at all hope you understand me and hope you to help me thanks
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|