Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Uploading files from the frontend to a file server with Python Django and SFTP
I would like to upload files from the frontend (vueJS) with axios to a remote file server. My backend is written in Python and I'm using the Django framework. I successfully uploaded files from the backend to the server with paramiko: sftpclient.put('localpath', 'remotepath') The problem is that it requires the file to be in the backend folder. How can I bypass that and upload the files from the client straight to the file server? I also tried using the django-storages package, but that puts the file in the RAM for some reason and uploads it really slow to the file server (and also crashes when I try it with large files). -
Django Static Files Duplicating when I run collectstatic using heroku's settings
I have a django project that recently started producing a lot of static files. When googling around it seems that I have some overlap in my STATICFILES_DIRS and STATIC_ROOT I followed Heroku's documentation on static files. I noticed it when switching between VScode and pycharm which I do not think could have caused this but I thought i would mention that as well. Pycharm just seems to ignore the 2600 "Unversioned Files" while vs code wants to push them all to github. I do not see the overlap in my static_root and static_dirs and at this point have spent enough time that I thought I would bring it here. Below I have attached images off the errors from heroku and well as the static portion of my settings.py file. Any suggestions of how to keep this from happening and get rid of these ugly bloating files would be greatly appreciated. This is my first deployed site so considering this is my biggest problem now I figure this is a success. But i want these files gone. I also just noticed that when I run mange.py runserver I get two lines of staticfiles -
Django : Get the value from a django Form in the view not working
I wrote a django Form to display a dropdown list of clients. It works and displays correctly the name of the clients and the id in the value of the option tag. However, I can't get the value selected in my view, it prints me a None form.py class SelectClient(forms.Form): ID_Customer = forms.ChoiceField(required=True) def __init__(self, *args, **kwargs) : self.user = kwargs.pop('user') super(SelectClient, self).__init__(*args, **kwargs) id_client_list = TblAadJntGroupmember.objects.filter(id_aaduser=self.user.id).values_list('id_aadgroup', flat=True) id_client_list = list(id_client_list) client_choices = TblAadGroups.objects.all().filter(id__in=id_client_list).values_list('idcustomer','groupname') print(client_choices) self.fields['ID_Customer'].choices = client_choices views.py @authenticated_user def upload(request): # INITIALIZE THE CONTEXT TO FIX THE AUTHENTICATION context = initialize_context(request) username = request.session.get('user').get('name') form_client = SelectClient(request.POST, user=request.user) if form_client.is_valid(): id_customer_request = request.POST.get("ID_Customer") print(id_customer_request) context['form_client'] = form_client return render(request, 'base/upload.html', context) The print of the data from the queryset : <QuerySet [(135, 'Fred Kunz'), (345, 'Lolo Bernard')]> <p><label for="id_ID_Customer">Id customer:</label> <select name="ID_Customer" id="id_ID_Customer"> <option value="135">Fred Kunz</option> <option value="345" selected="">Lolo Bernard</option> </select></p> <input type="submit" value="Select"> -
chaining modelform with foreignkey and display the result on the web page automatically
how to implement auto populated field on Django model form in forms.py. i have a model having a foreign key class and I want to call that element in the -
Feather icons: Uncaught TypeError: r.default[o] is undefined
I use feather icons (https://feathericons.com/) and have Uncaught TypeError: r.default[o] is undefined I did not have before. In some of my templates, it works but in other it raise this error on this line : feather.replace() -
Get html link id in django views.py
This is what my template index.html looks like {% extends "encyclopedia/layout.html" %} {% block title %} Encyclopedia {% endblock %} {% block body %} <h1>All Pages</h1> <ul> {% for entry in entries %} <li><a href="{% url 'link' %}">{{ entry }}</a></li> {% endfor %} </ul> {% endblock %} And here is my urls.py file path("link", views.link, name="link") Finally, this is my link view inside of the views.py file def link(request, id): return redirect("page", name=id) Where page() is a function that takes one argument. I want the id of the <a></a> tag of index.html to be that argument. But I have no idea how to access get that id inside of views.py when the <a></a> tag is clicked -
How to dynamically insert a value in a Django ModelForm
I have a project where users can create a company. However, there is a Theme that needs to be dynamically inserted, once the user chooses a theme on the frontend - more like when you want to choose a template in a no-code builder. Below is my models.py class Theme(models.Model): name = models.CharField(max_length=100, null=True) image = models.ImageField(upload_to='static/images/themes_images', null=True, blank=True) category = models.CharField(max_length=200, choices=CATEGORY_CHOICES, null=True) class Company (models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, editable=False) date_created = models.DateField(default=timezone.now, null=True) company_name = models.CharField(max_length=100, null=True) theme = models.ForeignKey(Theme, on_delete=models.CASCADE, null=True, blank=True) For the Theme model, it is only the administrator who will create it and the user will only have to choose it on the front end. Sort of like when choosing a premade template in Weebly. All the Theme Objects will have their own page where the user can visually see which theme to go with: @login_required(login_url='login') def theme(request): themes = Theme.objects.all() context = {'themes': themes} return render(request, 'themes.html', context) I haven't done much with the view, cause I am not sure how to go about it to achieve the desired result. Themes.html {% extends 'index.html' %} {% load static %} {% block 'title' %} <title>Themes | Simpledocs</title> {% endblock %} {% block … -
TypeError at /cart/8/My Best Optics/ middleware() got an unexpected keyword argument 'id'
urlpatterns = [ path('cart/<int:id>/<str:sellername>/', auth_middleware(CartViewAndAdd.as_view()) , name='cart'), ] <a href="{% url 'cart' id=price.product.id sellername=price.seller.name %}" class="btn btn-primary">Add to Cart</a> class CartViewAndAdd(View): def get(self , request, id, sellername): customername= '' if('customername' in request.session): customername = request.session['customername'] else: customername = None Was working a few builds back. Dont know what happened -
Fixtures are not working after Django squashmigrations
I just squashed a lot of migrations in Django 4.0.x. Now when running the migrations I get the following error: File "/opt/hostedtoolcache/Python/3.9.10/x64/lib/python3.9/site-packages/Django-4.0.3-py3.9.egg/django/db/migrations/loader.py", line 120, in load_disk migration_module = import_module(migration_path) File "/opt/hostedtoolcache/Python/3.9.10/x64/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 846, in exec_module File "<frozen importlib._bootstrap_external>", line 983, in get_code File "<frozen importlib._bootstrap_external>", line 913, in source_to_code File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/runner/work/backend/backend/general/migrations/0001_squashed_0019_merge_0018_auto_20220226_2311_0018_auto_20220228_2343.py", line 42 code=general.migrations.0004_initial_general.Migration.load_data, ^ SyntaxError: invalid decimal literal The according code lines in the migration file is: migrations.RunPython( code=general.migrations.0004_initial_general.Migration.load_data, ), I am totally lost here. -
How to perform a django filter on a related field with related name in graphene
I have an event model with a foreign keys to location and photographer models. # event model ... class Event(models.Model): STATUS = ( ("Scheduled", "Scheduled"), ("Cancelled", "Cancelled"), ("Available", "Available"), ("Complete", "Complete"), ) location = models.ForeignKey( Location, on_delete=models.SET_NULL, null=True, related_name="event_location" ) photographer = models.ForeignKey( Photographer, on_delete=models.SET_NULL, null=True, related_name="event_photographer", ) event_date = models.DateField() status = models.CharField(max_length=50, choices=STATUS, default="Scheduled") created = models.DateTimeField(auto_now_add=True) The photographer model has first_name, last_name and email as properties. I would like to be able to filter events by supplying the photographer's details, for example their email. In my REST api, I made it such that I could pass the any django filter query in url like this: /events/?photogrpher__email=name@example.com. I am trying to replicate the same behavior in graphql using graphene. # types.py ... class EventType(DjangoObjectType): class Meta: model = Event interfaces = (relay.Node,) filterset_class = EventFilter class LocationType(DjangoObjectType): class Meta: model = Location filterset_class = LocationFilter interfaces = (relay.Node,) class PhotographerType(DjangoObjectType): class Meta: model = Photographer filterset_class = PhotographerFilter interfaces = (relay.Node,) Filters: # filters.py ... class PhotographerFilter(FilterSet): class Meta: model = Photographer fields = "__all__" exclude = [ "password", "profile_picture", ] class EventFilter(FilterSet): class Meta: model = Event fields = "__all__" filter_fields = { "event_photographer": ["exact", "first_name", "last_name", … -
Url Patterns wont match [closed]
urlpatterns = [ path('cart/<int:id>/<str:sellername>/', auth_middleware(CartViewAndAdd.as_view()) , name='cart'), class CartViewAndAdd(View): def get(self , request): customername= '' if('username' in request.user.username): customername = request.user.username else: customername = None .... <a href="/cart/?id={{product.id}}&sellername={{price.seller.name}}" class="btn btn-primary">Add to Cart</a> Page not found (404) No Post matches the given query. Request Method: GET Request URL: http://127.0.0.1:8000/cart/?id=8&sellername=Best%20My%20Optics Raised by: blog.views.post_detail Code was working earlier. Dont know why.. -
Django mtpp use multiple add_related_count
i need count items in categories twice with different parametres, how i have to do? obviously that dosen't work bcs add_related_count returns a queryset categories = Category.objects.add_related_count( Category.objects.all(), # Queryset Item, 'category', 'count_collection', cumulative=True, extra_filters={'id__in': UserItems.objects.filter(user_id=userdata.id, listname=UserItems.WISHLIST).values_list('item_id', flat=True )} ).add_related_count( Category.objects.all(), # Queryset Item, 'category', 'count_collection', cumulative=True, extra_filters={'id__in': UserItems.objects.filter(user_id=userdata.id, listname=UserItems.COLLECTION).values_list('item_id', flat=True )} -
Save method is not being called in StackedInline model admin in Django
models.py class form21tablet(models.Model): date = models.DateField() TotalNetWt = models.DecimalField(max_digits=8, decimal_places=3,default=0, editable=False, null=True, blank=True) yieldPercent = models.DecimalField(max_digits=4, decimal_places=2, default=0, editable=False, null=True, blank=True) def save(self): #self.save() print('hello This is Before if') #calculation of total and percentage totnet=0 totgross= 0 # print('Hi', self.form21entry_set.all()) for item in self.form21entry_set.all(): print('Hi') totnet += item.net totgross += item.gros print(totnet) print(totgross) self.TotalNetWt = totnet if totgross: self.yieldPercent = totnet*100/totgross print(self.TotalNetWt) print(self.yieldPercent) super().save() class form21entry(models.Model): formref = models.ForeignKey(form21tablet, on_delete=models.CASCADE) Date = models.DateField() ContainerNo = models.IntegerField() tare = models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Tare Wt.(KG)') gros = models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Gross Wt.(KG)') net = models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Net Wt.(KG)', editable=False) done_by = models.CharField(max_length=50) Checked_by = models.ForeignKey(User, on_delete=models.CASCADE, related_name='+') answer = ( ('1', 'Ok'), ('0', 'Not Ok') ) Remarks = models.CharField(max_length=50, choices=answer) def save(self): self.net = self.gros - self.tare return super().save() def __str__(self): return str(self.Date) + ' - ' + str(self.ContainerNo) admin.py class form21entryInline(admin.StackedInline): model = form21entry class form21tabletAdmin(admin.ModelAdmin): list_display = ['date', 'TotalNetWt', 'yieldPercent'] class Meta: model = form21tablet inlines = [form21entryInline] readonly_fields = ('TotalNetWt', 'yieldPercent') admin.site.register(form21tablet, form21tabletAdmin) I am trying to get the calculations when I save the form but I am not getting any answers when I save it once, if I save it twice it returns me all the calculations. -
Django : How display the data of a ChoiceFiled Form with the init method
I want to do a form that does a dropdown list and does not depend on a Model. However the data on the dropdown menu depends on the user and the data that the user has access. What should I add to my form to display the data of the init method. forms.py class SelectClient(forms.Form): ID_Customer = forms.ChoiceField() def __init__(self, *args, **kwargs) : self.user = kwargs.pop('user') super(SelectClient, self).__init__(*args, **kwargs) id_client_list = TblAadJntGroupmember.objects.filter(id_aaduser=self.user.id).values_list('id_aadgroup', flat=True) id_client_list = list(id_client_list) self.choices = TblAadGroups.objects.all().filter(id__in=id_client_list) -
django multiple photo upload per entry
I want to let the user upload text, a describtion and multiple images per entry. But at the moment I create a new entry for every photo, instead of having multiple images for one entry. What do I have to change. Thank you. models.py class MultipleImage(models.Model): title = models.CharField(max_length=200) describtion = models.TextField(null=True, blank=True) images = models.FileField() forms.py class CommentForm(forms.ModelForm): class Meta: model = MultipleImage fields = ['title', 'describtion', 'images'] widgets = { 'images': forms.ClearableFileInput(attrs={'multiple': True}), } views.py def upload(request): form = CommentForm() if request.method == "POST": images = request.FILES.getlist('images') for image in images: MultipleImage.objects.create(images=image) images = MultipleImage.objects.all() return render(request, 'index.html', {'images': images, 'form':form}) index.html <form action="" method="post" enctype="multipart/form-data"> {% csrf_token %} {% for field in form %} {{field}} {% endfor %} </form> -
Django models Count and Q methods are throwing type error
I'm trying to generate dynamic query based on user input values. The normal query would be like this. my_model.objects.aggregate(Type1=Count('pk', filter=Q(db_field=1)),Type2=Count('pk', filter=Q(db_field=2)),Type3=Count('pk', filter=Q(db_field=3)),Type4=Count('pk', filter=Q(db_field=4)),Type5=Count('pk', filter=Q(db_field=5))) This is the code I have written for my testing. from django.db.models import (Count, Q) field = field_values # (it's tuple and read from input) aggregate_query = '' if field != None: for j in field: aggregate_query += f"{j[1]}={Count}('pk', filter={Q}(db_field={j[0]}))," my_model.objects.aggregate(aggregate_query[:-1]) the aggregate query is generate correctly and got results when I evaluated on python console. But when I execute this code, its throwing below error. QuerySet.aggregate() received non-expression(s): Type1=<class 'django.db.models.aggregates.Count'>('pk', filter=<class 'django.db.models.query_utils.Q'>(db_field=1)), Type2=<class 'django.db.models.aggregates.Count'>('pk', filter=<class 'django.db.models.query_utils.Q'>(db_field=2)), Type3=<class 'django.db.models.aggregates.Count'>('pk', filter=<class 'django.db.models.query_utils.Q'>(db_field=3)), Type4=<class 'django.db.models.aggregates.Count'>('pk', filter=<class 'django.db.models.query_utils.Q'>(db_field=4)), Type5=<class 'django.db.models.aggregates.Count'>('pk', filter=<class 'django.db.models.query_utils.Q'>(db_field=5)). Can someone help me on this. -
Django Migration in Production [closed]
I have a Django project in production. What would be the best practice in working with migrations? An example I have 3 apps in production, after some time the client needs another app, how to keep the migrations synchronized so it doesn't break. -
Django and HTMX - AttributeError: 'int' object has no attribute 'get'
I'm trying to make this POST call work with Django: <span id="quantity-in-cart">{{item.quantity_in_cart}}</span> <button class="btn btn-success btn-sm" hx-post="/cart/add/1/" hx-target="#quantity-in-cart" hx-swap="outerHTML">+</button> But, when I click the button which performs the POST call, I get this error: Internal Server Error: /cart/add/4/ Traceback (most recent call last): File "/home/neisor/.local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/neisor/.local/lib/python3.9/site-packages/django/utils/deprecation.py", line 119, in __call__ response = self.process_response(request, response) File "/home/neisor/.local/lib/python3.9/site-packages/django/middleware/clickjacking.py", line 26, in process_response if response.get('X-Frame-Options') is not None: AttributeError: 'int' object has no attribute 'get' [22/Mar/2022 12:47:01] "POST /cart/add/4/ HTTP/1.1" 500 66757 I also have this in my template at the end of <body> tag: <script> document.body.addEventListener('htmx:configRequest', (event) => { event.detail.headers['X-CSRFToken'] = '{{ csrf_token }}'; }) </script> Any ideas how to fix it? Thank you -
How to reset Id number after deleting a todo in todo list?
I am working with React and Django. I almost completed it, but when I delete a todo from the list, it is not updating the id number. For example, I have five todos in a list 1, 2,3, 4 and 5. When I delete number 4. It is showing 1, 2, 3, 5. It should be in sequence. It should be like 1, 2, 3 and 4. I hope my question is understandable. Please help me with this issue. My Main Component AddTodo.js import React, { useState, useEffect } from "react"; import { Button, Form } from "react-bootstrap"; import API from "../API"; const AddTodo = () => { const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); const [todoId, setTodoId] = useState(null); const [todos, setTodos] = useState([]); useEffect(() => { refreshTodos(); }, []); const refreshTodos = () => { API.get("/") .then((res) => { setTodos(res.data); }) .catch(console.error); }; const onSubmit = (e) => { e.preventDefault(); let item = { title, description }; API.post("/", item).then(() => refreshTodos()); }; const onUpdate = (id) => { let item = { title }; API.patch(`/${id}/`, item).then((res) => refreshTodos()); }; const onDelete = (id) => { API.delete(`/${id}/`).then((res) => refreshTodos()); }; function selectTodo(id) { let item = … -
Comment utiliser les listes dans le modèle django pour obtenir le diagramme si dessous en pièce jointe [closed]
Je veux créer une liste imbriqués dans une liste de manière à ce que quand on choisit un objet, cela affiche automatique les valeurs que j'ai renseigné dans ma liste Model Django liste imbriqués -
ContentNotRenderedError: The response content must be rendered before it can be accessed (Django Middleware)
I am creating Django middleware for blocking a user when (s)he gets throttled more than 5 times but I am getting ContentNotRenderedError. Full error msg: Traceback (most recent call last): File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/utils/deprecation.py", line 119, in __call__ response = self.process_response(request, response) File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/middleware/common.py", line 113, in process_response response.headers['Content-Length'] = str(len(response.content)) File "/home/raptor/Application/utilities/anaconda3/envs/slic4rapi/lib/python3.8/site-packages/django/template/response.py", line 126, in content raise ContentNotRenderedError( django.template.response.ContentNotRenderedError: The response content must be rendered before it can be accessed. [22/Mar/2022 11:55:03] "GET /api/v1/userdetail/ HTTP/1.1" 500 84321 Middleware class class BlockMiddleware: def __init__(self, get_response): self.get_response = get_response # some other variables def __call__(self, request): # handle_blocking will return "None" if user can access application else "rest_framework.response.Response" object blocking_res = self.handle_blocking(request) if blocking_res: return blocking_res response = self.get_response(request) # logic for counting how many throttles have left # then if throttles_left <= 0: return Response( data='User is blocked due to exceeding throttles limit.', status=status.HTTP_403_FORBIDDEN ) else: return response Example return of handle_blocking function: return Response( data='User is blocked, please contact the support team.', status=status.HTTP_403_FORBIDDEN ) It works when I remove the middleware and don't use the Response class(return the self.get_response(request) instead). I am unable to figure out the error. What am I doing … -
Field is required in the Django Admin even though I have set "blank=True" in the Model
In models.py class DeploymentType(models.Model): deployment_type = models.CharField(primary_key=True, max_length=30, verbose_name="Deployment Type",blank=True) def __str__(self): return self.deployment_type class ActivationType (models.Model) : activation_type = models.CharField ( primary_key=True, max_length=20, verbose_name = "Activation Type" ) permitted_host_methods = models.ManyToManyField( HostMethod, verbose_name = "Permitted Host Methods" ) permitted_deployment_types = models.ManyToManyField( DeploymentType, verbose_name = "Permitted Deployment Types" ) class Meta: verbose_name = "Activation Type" def __str__(self): return str(self.activation_type) But then on the Django admin page, I can't create a new Activation Type without selecting a Permitted Deployment Type. Furthermore, if I go into an existing Activation Type I am not sure how to select zero Permitted Deployment Types. I believe I am using Django 3.1.1 -
Django model methods(Date filter)
Been struggling for weeks now with this issue, starting to feel like I will never solve it. I have these methods under my model. def sfget_totals(self): return self.agent_sale.filter(Date_created__range=["2022-03-01","2022-04-02"]).count() def sfget_confirmed(self): return self.agent_sale.filter(State="Confirmed",Date_created__range=["2022-03-01","2022-04-02"]).count() def sfget_debi(self): return self.agent_sale.filter(AcknowledgeQA=True,State="Confirmed",Debi_status="Accepted",Date_created__range=["2022-03-01","2022-04-02"]).count() def sfget_requested(self): return self.agent_sale.filter(Debi_status="Requested",Date_created__range=["2022-03-01","2022-04-02"]).count() def sfget_cancelled(self): return self.agent_sale.filter(State="Cancelled",Date_created__range=["2022-03-01","2022-04-02"]).count() def sfget_pending(self): return self.agent_sale.filter(State="Pending",Date_created__range=["2022-03-01","2022-04-02"]).count() in the above example i am putting the dates in manually(it works and returns the correct query) problem is I still don't know how to make the user plug these dates in through the site. This is my view. def Team_stats(request,pk): sd = request.GET.get("from") ed = request.GET.get("to") start_date = datetime.datetime.strptime(sd, "%Y-%m-%d").date() end_date = datetime.datetime.strptime(ed, "%Y-%m-%d").date() if start_date == None or end_date == None: sales_agent = SalesAgent.objects.filter(Team_leader=pk) return render(request,"Sales/Team_detail_page.html",{"sales_agent":sales_agent}) else: sales_agent = SalesAgent.objects.filter(Team_leader=pk,agent_sale__Date_created__range=[start_date,end_date]).distinct() print(type(start_date)) return render(request,"Sales/Team_detail_page.html",{"sales_agent":sales_agent}) This is my template. <form method="GET" action="."> <div class="form-row"> <div class="form-group col-md-6"> <label for="inputEmail4">Start date</label> <input type="date" format='%Y-%m-%d' name="from" class="form-control" id="inputEmail4" placeholder="Start Date"> </div> <div class="form-group col-md-6"> <label for="inputEmail4">End date</label> <input type="date" format='%Y-%m-%d' name="to" class="form-control" id="inputEmail4" placeholder="End date"> </div> </div> <button type="submit" class="btn btn-primary">Search</button> </form> <!-- <p>THERE SHOULD BE A GRAPH IN HERE FOR THE AGENTS STATS</p> --> <br> <br> <div class="container"> <table class="table table-dark table-striped table-bordered"> <thead> <tr> <th scope="col">#</th> <th scope="col">Agent Name</th> <th scope="col">Total sales</th> … -
How to display additional data
By default the table should only show the first 10 rows of the dataset, by clicking on a button “Load more” additionally 10 rows should be shown - reloading the page is fine. next page = "https://swapi.dev/api/people/?page=2", my code: import requests from rest_framework.views import APIView from rest_framework.viewsets import ModelViewSet from rest_framework import status from rest_framework.response import Response from datetime import datetime from rest_framework import filters from rest_framework.pagination import PageNumberPagination from rest_framework.decorators import action # class StarWarsAPIListPagination(PageNumberPagination): # page_size = 4 # page_size_query_param = 'page_size' # max_page_size = 20 class StarView(APIView): # pagination_class = StarWarsAPIListPagination # filter_backends = (filters.OrderingFilter) # ordering_fields = ('name',) def get(self, request): a = [] page = request.query_params.get('page', 1) url = f'https://swapi.dev/api/people/?page={page}' response = requests.get(url).json() n = response['next'] a.append(n) return Response(response, status=status.HTTP_200_OK) -
How to name Settings model properly in Django?
As we all know the best code style practice to is to name Django models (classes) as singular (Cat, User, Permission, etc.), instead of plural (Cats, Users, Permissions), because it represents the structure of one record of the model. But in case of user settings it become UserSetting. Setting could be interpretted as one key-value pair but we have complete user settings record with multiple key-value pairs. So it's UserSettings. It appearently become confusing. So what should we do in that case? UserSetting UserSettings UserSettingsRecord Other ideas?