Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Test for proper exception with Pytest
I want to test if a Django Rest Framework returns the proper exception when required, but the test always fails when the exception is raised, instead of succeeding when the exception is the right one: This is my view: @api_view(http_method_names=['GET']) def get_fibonacci(request: Request) -> Response: """ Calculates the fibonacci value for number sent as query_param 'n' """ try: n = int(request.query_params['n']) except ValueError: raise ValueError("The value of 'n' must be an integer.") fibonacci_of_n = fibonacci_dynamic_v2(n) return Response(fibonacci_of_n) And this is my test: def test_n_is_a_string_returns_proper_exception(client) -> None: test_url = f"{fibonacci_url}?n=str" response = client.get(test_url) assert response.status_code == 404 And this is the result of the test: =============================== short test summary info ======================================= FAILED tests/test_api.py::test_n_is_a_string_returns_proper_exception - ValueError: The value of 'n' must be an integer. Results (1.08s): 23 passed 1 failed - api/coronavstech/fibonacci_methods/tests/test_api.py:20 test_n_is_a_string_returns_proper_exception I don't know how to instruct Pytest to succeed the test when the exception is the right one, instead of failing it because there was an exception, wich is the result expected from the request. -
Why does django give an httpresponse error when running my code?
first time asking on stack. I am really struggling to figure out what is causing this error message: **The view econlabs.views.balance didn't return an HttpResponse object. It returned None instead.** I feel like there is an issue with the form initialization in the balance function in views.py. I don't know Django very well or Python. Please help me with this error. Code below: *models.py* class Balance(models.Model): userBalance = models.DecimalField(max_digits=10, decimal_places=2, null=True) *forms.py* lass BalanceForm(forms.ModelForm): class Meta: model = Balance fields = ['userBalance'] *views.py* def balance(request): form = BalanceForm(initial={"userBalance":107}) if form.is_valid(): if request.method == "POST" and "form10" in request.POST: formValue = form.cleaned_data.get('userBalance') form2 = formValue - 10 return render(request, "econlabs/balance.html", {'form2': form2}) return render(request, "econlabs/balance.html", {'form': form}) -
DRF serialize PK Field
I have added User as a PK to model Category and I am passing the ID via an ajax request however something is clearly wrong with the serializer as in the views it returns None whilst if I do the request via Postman everything works as expected. Could someone please point out what I am doing wrong? class CategorySerializer(TaggitSerializer, serializers.ModelSerializer): author = serializers.PrimaryKeyRelatedField(queryset=CustomUser.objects.all()) posts = PostSerializer(many=True, read_only=True) tags = TagListSerializerField() class Meta: model = Category fields = ('id', 'name', 'description', 'created_at', 'updated_at', 'posts', 'tags', 'author') # User Serializer class CustomUserSerializer(serializers.ModelSerializer): class Meta: model = CustomUser fields = ('id', 'email') -
Class not instantiating properly within Django Form function
I created a class to manage Oauth token renewal. The token is stored in the database using a Django model. I can make API calls after instantiating the class. When I try to do the same within a Django Form it always gives an error, stating that it can't locate the access token. The token is retrieved from a queryset within the class init method. If no token is found it should then fetch a new token. Within Django shell if I delete the token from the database and then create a new object from the class, it will fetch a new token. Within the form both methods are failing. The settings fields with the API keys aren't loaded properly, so fetching the token doesn't work. I can't retrieve the existing token from the database or fetch a new one if it's missing. The form itself doesn't do anything except validate the fields, and instantiate this class from the FormView form_valid function. The error is thrown at self.client.fetch_token. This error is a credentials error because it can't access the API keys from the settings. It works in the Django shell. The first line of code that fails is if self.api_token … -
pytest-django: mailoutbox work only if last fixture
If I use the mailoutbox fixture like this, it works: def test_send_invoices_via_mail_page(user_client, invoice, mailoutbox): url = reverse(send_invoices_via_mail_page) response = user_client.get(url) assert response.status_code == 200 log = LogOfInvoiceMail.objects.get(invoice=invoice) assert log.success, log.exception assert log.invoice == invoice assert log.exception == '' assert len(mailoutbox) == 1, mailoutbox But if I use it like this it fails: def test_send_invoices_via_mail_page(mailoutbox, user_client, invoice): Error: len(mailoutbox) is 0 Why does is the order of the arguments important here? It took me a very long way to find this work-around. -
Updating a large number of foreign key references in Django
I have a companies and employees tables, along with a third employees records table which contains a foreign key to both the companies and employees tables. The company table has an entry of 'Company A'. Subsequently, 'Company A' splits into two new entries: 'Company A1' and 'Company A2'. Now in the employees records table, currently a large number employees are associated with 'Company A'. For each employee associated with 'Company A', I want to create two new entries which associates the employee with both 'Company A1' and 'Company A2'. What would be the optimal way to accomplish this with Django? Considering that there could be hundreds of thousands or possible millions of rows of employee records that need updating. -
How to get the most liked users on a particular date in django
So I have a social media app, where users can like the posts of other users. Now I fetch the top 20 users who have received the most number of likes. Everything is perfect. But the problem is I cant figure out , how I can fetch the top users who have received the most likes on a particular date, for example get the top users who received most likes only today My LIKES MODEL class PostLike(models.Model): user_who_liked = models.ForeignKey(User, on_delete=models.CASCADE) post_liked = models.ForeignKey(Post, on_delete=models.CASCADE) liked_on = models.DateTimeField(default=timezone.now) SIMPLIFIED POST MODEL class Post(models.Model): id = models.AutoField(primary_key=True) user = models.ForeignKey(User, on_delete=models.CASCADE,related_name='author') caption = models.TextField() date = models.DateTimeField(default=timezone.now) likes = models.ManyToManyField( User, blank=True, through=PostLike) image = models.TextField() class Meta: ordering = ['-id'] SIMPLIFIED USER MODEL class User(AbstractBaseUser, PermissionsMixin): email = models.EmailField(unique=True) user_name = models.CharField(max_length=100, unique=True) date = models.DateTimeField(default=timezone.now) profile_picture = models.TextField( default="https://www.kindpng.com/picc/m/24-248253_user-profile-default-image-png-clipart-png-download.png") bio = models.CharField(max_length=200, default="") objects = CustomManger() def __str__(self): return self.user_name ** My query to get the top users who received the most number of likes ** users = User.objects.annotate(num__smiles=Count('meme_publisher__smiles')).order_by('-num__smiles')[:20] # So everything is perfect and I am getting the users, now I dont know how to get the top users with most likes on a PARTICULAR DATE, for example … -
django admin: save image like base64
I'd like to upload image through django admin panel, but I need to save it as a base64 string in database How could I do it? + I would like to see image in admin DB may move someday and it will be better to save just base64 string, so I won't depend on some file structure (as if I'll store original images somewhere) ps. I have django 2.2.6 version -
How to define the sum of multiple columns values into one column in Django models.py
I have a django models.py as follows: from django.db import models class StudentList(models.Model): name=models.CharField(max_length=200) def __str__(self): return self.name class Marks_of_each_Student(models.Model): student_name=models.ForeignKey(StudentList,on_delete=models.CASCADE) s1=models.IntegerField() s2=models.IntegerField() s3=models.IntegerField() Total=models.IntegerField(default=0,editable=False) def calculate_total(self): return self.s1+self.s2+self.s3 def save(self): self.Total=self.calculate_total() I want to have a column names Total containing the value of s1+s2+s3 in it when entered via ORM commands through shell. I tried the following but it did not worked out. from main_page.models import StudentList,Marks_of_each_Student >>> x=StudentList(name="XYZ NAME") >>> x.save() >>> x1=Marks_of_each_Student(student_name=x,s1=90,s2=90,s3=90) >>> x1.save() >>> x1 <Marks_of_each_Student: Marks_of_each_Student object (1)> >>> x1.Total 0 All other columns are having the correct values but this Total is not giving correct results. How do I proceed to make sure that the changes are reflected in Total column and also I was not getting these data saved for Marks_of_each_Student in MySQL table. Can anyone help me?? -
how can send and receive and show it without refresh page in django?
i created a django chat app and now i want send and receive message and show it in same page without refreshing... my views function is: @login_required def message_form(request,id,slug,user_id): user2=request.user user_id=user_id user = get_object_or_404(User,id=user_id) msg = Message.objects.filter(sender=user) post = get_object_or_404(Post,id=id,slug=slug) post2 = Post.objects.filter(user=post.user) inbox = Message.objects.filter(reciever=request.user) sentbox = Message.objects.filter(sender = request.user) message1 = Message.objects.filter(post = post ,sender=user,reciever=post.user).order_by('date') message2 = Message.objects.filter(post = post ,sender=post.user,reciever=user).order_by('date') message3 = list(chain(message1, message2)) message3 = sorted(message3, key=operator.attrgetter('id')) form = MessageForm(request.POST or None,request.FILES or None ) if request.method == 'POST': if form.is_valid(): message = form.save(commit=False) if post.user == request.user: message.sender = post.user message.reciever = user else: message.sender = request.user message.reciever = post.user message.post = post message.post_user = post.user message.post_image = post.image1 message.save() form = MessageForm() return HttpResponse() context={ 'post':post, 'post2':post2, 'inbox':inbox, 'sentbox':sentbox, 'form':form, 'message1':message1, 'user_id':user_id, 'msg':msg, 'message2':message2, 'message3':message3, 'user2':user2, } return render(request,'user_chats.html',context) and this is my templates : {% for box3 in message3 %} <div class=" border bg-light my-3 p-3 msg_show " id="msg_show" style="border-radius:20px; " > <span class="p-2 my-5 msg" id="msg" >{{ box3.msg_content }}</span><br> <span class="date text-muted ">{{ box3.whenpublished }}</span> </div> {% endfor %} <form class="mt-2 " id="form_id" method="POST" action="" enctype="multipart/form-data"> {% csrf_token %} <div class="input-group mx-auto" > <div class="input-group-append"> <button class="btn updateButton'" type="submit" name="button"> send </button> … -
How to fix double click issue in large cell in IPython Notebook?
I use an interactive Python shell to interact with my Django application and one cell of the IPython Notebook has almost 400 lines. My problem is that the double click doesn't work well inside this specific cell so that I'm unable to double-click and select text quickly. Any idea how to fix this issue other than reducing the cell size ? This is how I start the server in a virtual env : python manage.py shell_plus --notebook -
how to create a removal button that depends on his parent and make a function remove() by jquery on it?
I need to search by whether it is one query or more. I'm not strong in Javascript or Jquery, however, the function does very well whether for (plus button) in one or more query and for (removal button) for one query only bt when it created if there are more than one search field sometimes be created and sometimes not created. I don't really know what is going on but all I notice that when I click on (plus button) which has the removal button it can create a new removal button and if I click the plus button in the parent that hasn't button removal the removal button doesn't create. there are my code and screenshot to see the error but please note that I do for-loop in HTML elements into form to retrieve the number of requests that exists in the query to create the same number of search fields therefore, I create the button that adds and remove that search except for the first field. correct search added for removal btn wrong search added for removal btn search.html <div class="search-field"> <h2 class="show"></h2> {% if query_length|length < 2 %} <form method="get" id="main_search"> <div class="form-group row search_repeated search_group"> <div … -
get Cross-Origin Request Blocked error in django for one special url
i used django and reactJs for my web application. all of urls are ok but just a url get Cross-origin blocked error. this is my urls.py: from . import views urlpatterns = [ path('',views.order_view,name="order"), path('create-ticket',views.create_ticket_view,name="create-ticket"), path('get-tickets-list/<int:id>',views.tickets_list_view,name='get-tickets-list'), path('change-state/order/<int:order_id>/state/<int:state_id>/', views.change_state_order_view, name='change-state'), path('create-common-answer/',views.create_common_answer_view,name='create-common-answer'), path('get-common-answer/',views.get_common_answer_view,name='get-common-answer'), path('get-states/',views.get_states_view,name='get-states'), ] and all of these are ok except one and that is : path('change-state/order/<int:order_id>/state/<int:state_id>/', views.change_state_order_view, name='change-state'), code view : @api_view(['PUT','DELETE','OPTIONS']) @permission_classes([IsAuthenticated,IsAdminPerm]) def change_state_order_view(request,order_id,state_id): try: order = Order.objects.get(id=order_id) except: return Response({'error':'404 Not found...!'},status=404) if request.method == "PUT": order.operator.add(request.user) elif request.method == "DELETE": order.operator.remove(request.user) order.state_ticket_id = state_id order.save() return Response({ 'message':'عملیات با موفقیت انجام شد.', 'result' : { 'order' : order.id, 'user_email' : request.user.email, 'name' : request.user.name, 'method' : request.method } }) and my reactJs code : const instance = axios.delete('http://MY_DOMAIN/api/orders/change-state/order/6273/state/1',{ headers: {'Authorization': 'token 079054fc245dc0894f896c31cd2ce2924e68cdb3'} }); console.log(instance); -
How not to delete default image when new one is uploaded?
I wrote code that deletes old user avatar when user uploads new one. And the problem is that, if user has default avatar and decides to change it, default image gets deleted. Here is my code: @receiver(pre_save, sender=Profile) def delete_file_on_change(sender, instance, **kwargs): if instance.pk: try: old_image = Profile.objects.get(pk=instance.pk).image except Profile.DoesNotExist: return new_image = instance.image if old_image and old_image.url != new_image.url: old_image.delete(save=False) I tried this: @receiver(pre_save, sender=Profile) def delete_file_on_change(sender, instance, **kwargs): if instance.image.url == '/media/default.jpg': ... But it didn't work because print(instance.image.url) for some reason, returns not /media/default.jpg but url of newly uploaded file. Also, here's my view: def update_user(request): if request.method == 'POST': if 'edit_profile' in request.POST: profile_form = UpdateProfileForm(request.POST or None, request.FILES, instance=request.user.profile) if profile_form.is_valid(): profile_form.save() return redirect('editprofile') profile_form = UpdateProfileForm(instance=request.user.profile) context = {'ps_form': password_form, 'u_form': user_info_form, 'pr_form': profile_form} return render(request, 'update_user.html', context=context) -
how to create an infrastructure of REACT, REACT NATIVE and DJANGO DRF on AWS
What would be the best way to create the infrastructure below on AWS: Please note that React and Django (DRF) are being dockerized, therefor there is a docker-compose.yml that has both the front end and back end) (PLEASE ADVISE IF I SHOULD DECOUPLE IT IN CASE THERE IS ANOTHER SOLUTION) FRONT END BACK END Front end React ----- > Backend Django (DRF) Mobile app React Native -
stuck on virtualenv / django
I am stuck on the issues with virtualenv/django My django had error in migrations and i messed up with few manipualtions: i updated django by pip i was adding PYTHONPATHs i removed and reinstalled env and my projects i removed all django manually from the Python38-32\lib\site-packages to reinstall etc. I thought i should reinstall virtualenv to start over again, but i can't The error when I am trying to uninstall or install virtualenv below. Any tips or solutions? -
Best backend framework for web and mobile applications?
My company is redesigning its backend. We are an ecommerce style business that also deals with providers. We need to track the delivery of products like Uber Eats does with food. We also have a complex inventory managing system where we need to know the location and stock available of certain products to guarantee speedy delivery. Additionally we need to be able to plan deliveries at certain dates in the future. All these things and other planned features and improvements make the functionality quite complex. We want to design our architecture as microservices, although we might start with components and REST API's for now and split them up into services in the future. We want to support a web application first but will develop a hybrid mobile app in the near future as well. I want our backend to: Be scalable Be able to split into microservices as we increase in complexity. Support web application. Support a Hybrid mobile app. What backend framework is best suited for these needs? -
Save user session after authentication in Django Channels
I'm trying to login a user with the help of Websockets & not the form POST method in views.py. asgi.py import os from django.core.asgi import get_asgi_application from channels.routing import ProtocolTypeRouter, URLRouter from channels.auth import AuthMiddlewareStack from app_name.routing import ws_urlpatterns os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings') application = ProtocolTypeRouter({ 'http': get_asgi_application(), 'websocket': AuthMiddlewareStack(URLRouter(ws_urlpatterns)), }) routing.py from django.urls import path from .consumers import WSConsumer, WSNewConsumer, WSDash ws_urlpatterns = [ path('ws/login/', WSConsumer.as_asgi()), path('ws/signup/', WSNewConsumer.as_asgi()), path('ws/dash/', WSDash.as_asgi()) ] consumers.py import json from channels.generic.websocket import WebsocketConsumer from django.contrib.auth.models import User from django.contrib.auth import authenticate from channels.auth import login class WSConsumer(WebsocketConsumer): def connect(self): if self.scope["user"].is_authenticated: print("User is already logged in!") else: self.accept() self.send(json.dumps({'message': 'Hello from SERVER!'})) def receive(self, text_data): try: a_json = json.loads(text_data) except json.decoder.JSONDecodeError: print("String could not be converted to JSON") user = authenticate(username=a_json['uname'], password=a_json['password']) if user is not None: login(self.scope, user) self.scope["session"].save() self.send(json.dumps({'logincode': 'Login Successful'})) else: self.send(json.dumps({'logincode': 'Login Unsuccessful'})) def disconnect(self, close_code): pass class WSNewConsumer(WebsocketConsumer): def connect(self): self.accept() self.send(json.dumps({'message': 'Hello from SERVER!'})) def receive(self, text_data): try: a_json = json.loads(text_data) except json.decoder.JSONDecodeError: print("String could not be converted to JSON") try: user = User.objects.create_user(a_json['uname'], a_json['emailid'], a_json['password']) user.save() self.send(json.dumps({'signupcode': '100'})) except: self.send(json.dumps({'signupcode': '300'})) def disconnect(self, close_code): pass class WSDash(WebsocketConsumer): def connect(self): self.accept() self.send(json.dumps({'message': 'Hello from SERVER!'})) def receive(self, text_data): try: a_json … -
Django annotate query with values from Many To Many Relationship
Following the example on Many To Many relationships for Django: https://docs.djangoproject.com/en/3.1/topics/db/examples/many_to_many/ I want to be able to display in the Django Admin a column on the Article listview which contains the title's of associated Publications. So if I have an article a1 which has publications: Publication(title='Pub 1') Publication(title='Pub 2') I want to see a column in the admin listview showing "Pub 1, Pub 2". I could do this with a custom function on the Admin class: class ArticleAdmin(admin.ModelAdmin): list_display = ['publication_titles'] def publication_titles(self, obj): return ', '.join([pub.title for pub in obj.publications.all()]) But that's an N+1 problem: each Article row will execute a query for each associated publication. I see this in the Django debug toolbar, where I see the number of SQL queries executed go from 9 queries to 33 when rendering 24 articles in the listview. I thought maybe I could do prefetch_related in the queryset: class ArticleAdmin(admin.ModelAdmin): list_display = ['publication_titles'] def get_queryset(self, request): queryset = super().get_queryset(request) queryset.prefetch_related('publications') return queryset def publication_titles(self, obj): return ', '.join([pub.title for pub in obj.publications.all()]) But that seems to have no effect on the number of SQL queries executed. I thought I could use annotate() to annotate the queryset used in the admin, but … -
Django React Web App hosted on Digitalocean loading issue Only Home page show's
I have hosted django react blogging web app, only two pages web app, it works fine locally, but when I host it online, the home page load, but when I go to another page, then page become blank, nothing show's, on reload show just a blink of the page, then show off again. this is the link page to my app http://157.230.15.153/ -
Searching a keyword with number of occurence in django
I want o search for a keyword from the descriptions field with an exact number of occurrences in Django. suppose I am searching the keyword 'Balam' with the number of occurrence '5 times'. what will be the query? if the searching keyword 'Balam' query is : filter(descriptions__icontains='Balam') what will be the query for searching 'Balam' with the exact occurence '5 times'? -
Object accessed through queryset doesn't have the attributes in Django
I have the following three models. Every Record can have many Users and each Record has a Resource. Granted I could be doing something grossly wrong here, but I still can't find the error. class Resource(models.Model): identifier = models.UUIDField(default=uuid.uuid4, unique=True) date_added = models.DateTimeField(default=now) def __repr__(self): return f'Resource: {self.identifier}, Time added: {self.date_added}' class URLResource(Resource): url = models.URLField() def __repr__(self): return f'{self.identifier} URL: {self.url}' class Record(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=SET_NULL, null=True) resource = models.OneToOneField(Resource, on_delete=CASCADE) def __repr__(self): return f'Record {{ User: {self.user}, Resource: {self.resource} }}' Here's the behavior that I get in my django shell >>> user = ... # a valid user In [89]: {each for each in Record.objects.filter(user=user)} Out[89]: {Record { User: dave, Resource: Resource object (9) }, Record { User: dave, Resource: Resource object (11) }, Record { User: dave, Resource: Resource object (12) }} In [90]: {each.resource for each in Record.objects.filter(user=user)} Out[90]: {Resource: 044565d1-9ddd-46a0-ae66-829253b45dd9, Time added: 2021-03-28 17:28:25.252009+00:00, Resource: 0ef18b7d-32f6-48c8-9c61-99f02ba6b6a9, Time added: 2021-03-28 19:08:06.178725+00:00, Resource: b4bb69ba-6f41-4c25-8999-d381d923890e, Time added: 2021-03-28 11:45:21.232911+00:00} Something that doesn't work (but should work) # I get an error!!! In [91]: {each.resource.url for each in Record.objects.filter(user=user)} --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-91-1a5c17d5d743> in <module> ----> 1 {each.resource.url for each in Record.objects.filter(user=user)} <ipython-input-91-1a5c17d5d743> in … -
Djanog Posting data in primary model and connected models in one to many relationship over rest API
I have made a simple model in Django / oAuth / Rest Framework with following three models: MODELS class Pet(models.Model): def nextVaccination(self): NEXT_VAC = 2160 #time in hours expirationTime = self.creationTimestamp + timedelta(hours= NEXT_VAC) return expirationTime petID = models.AutoField(primary_key=True) vaccine = models.ManyToManyField('Vaccine') creationTimestamp = models.DateTimeField(default=timezone.now) nextVacTimestamp = models.DateTimeField(blank=True) def save(self, *args, **kwargs): if not self.nextVacTimestamp: self.nextVacTimestamp = self.nextVaccination() super(Pet, self).save(*args, **kwargs) class Vaccine(models.Model): VACLIST = [('P','parvovirus'),('D','distemper'),('C','hepatitis')] vaccineName = models.CharField(max_length=2, choices=VACLIST, blank=False) class Visits(models.Model): def getUser(request): current_user = request.user return current_user.username check_one = models.BooleanField(null=True) check_two = models.BooleanField(null=True) check_three = models.BooleanField(null=True) notes = models.TextField(blank=True) username = models.CharField(max_length=100, blank=True) def save(self, *args, **kwargs): if not self.username: self.username = self.getUser() super(Visits, self).save(*args, **kwargs) SERIALIZERS class VaccineSerializer(serializers.ModelSerializer): class Meta: model = Vaccine fields = ['vaccineName'] class VisitsSerializer(serializers.ModelSerializer): class Meta: model = Visits fields = ['check_one', 'check_two', 'check_three', 'username', 'notes'] class PetSerializer(serializers.ModelSerializer): visits= VisitsSerializer(source='visits_set', many=True) class Meta: model = Pet fields = ['petID', 'vaccine', 'creationTimestamp', 'nextVacTimestamp', 'visits'] VIEW class PetAPIView(APIView): def get(self, request): pets= Pet.objects.all() serializer = PetSerializer(pets, many=True) return Response({ 'data': serializer.data }) def post(self, request, *args, **kwargs): serializer = PetSerializer(data= request.data) if serializer.is_valid(): serializer.save() return Response({ 'message': 'Message data posted successfully!', 'data': serializer.data }) class VaccineAPIView(APIView): def get(self, request): # pets= Pet.objects.all() vaccine= Vaccine.objects.all() … -
How to return related objects a queryset's values_list instead of just the PKs
Is there a way to neatly return a queryset's values_list of related objects from many objects' related managers at the same time without having to write a loop ? In other words this query: Hospital.objects.first().treatments.all().values_list('treatment_appointments', flat=True) will return me a list of PKs that will look something like this: <QuerySet [1, 32, 35, 21, 30, 28, 29, 13, 56, 58, 59, 60, 61, 66, 67, 87]> Is it possible to write such query that will return the actual objects instead of those PKs or else is it possible to convert simultaneously all those PKs into objects without for using a for loop?? -
How to serialize mutiple querysets in django rest framework?
I have two models that area related to each other. One represents a project and the other one represents the field/area that the project bnelongs to. I have a view that looks like this: class ProjetosArea(generics.ListAPIView): lookup_field = 'id' serializer_class = ProjetosPreviaSerializer pagination_class = ProjectPagination def get_queryset(self): area_id = self.kwargs['id'] area = AreaConhecimento.objects.get(id=area_id) projetos = Projeto.objects.filter(area_conhecimento=area_id) queryset = [area, projetos] return queryset I want to write a serializer for this view that looks like this: { "area": {---fields of the area---}, "projects": [---The projects that belongs to that area---] } How would write a serializer for this? The queryset is a list with the area and the projects belonging to that area