Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
When I add project in python manager for my django website displaying me : Project startup failed, please check the project Logs
When I add project in python manager for my django website displaying me : Project startup failed, please check the project Logs and the status is suspended as you can see in the image below.enter image description here I followed these steps : The "logs" that are mentioned do not seem to be working but I do see these errors while executing: The dependencies needed to install the project, please wait... ERROR: Could not find a version that satisfies the requirement uvicom (from versions: none) ERROR: No matching distribution found for uvicom 2024-11-06 15:16:38 Start installing dependencies Looking in indexes: pypi.org ERROR: Could not find a version that satisfies the requirement asgiref=3.8.1 (from versions: none) ERROR: No matching distribution found for asgiret-381 and (myenv) root@vps-X:/www/wwwroot/myproject# gunicorn myproject.wsgi:application [2024-11-06 14:07:13 +0100] [203739] [INFO] Starting gunicorn 23.0.0 [2024-11-06 14:07:13 +0100] [203739] [ERROR] Connection in use: ('0.0.0.0', 8000) [2024-11-06 14:07:13 +0100] [203739] [ERROR] connection to ('0.0.0.0', 8000) failed: [Errno 98] Here are the steps I followed: Step 1: Connect to Your Server Use SSH to connect to your server securely. Replace <your-server-ip> with the IP of your server. ssh root@<your-server-ip> Step 2: Set Up Your Project Directory and Python Environment Create the Project … -
Django `The current path, detail/PayPal, matched the last one` error
I'm using Django's DetailView to display detailed information in my web app. I've set up a Processor model with a name and a slug field, and I'm using the slug field in the URL pattern and the DetailView. However, I'm running into an issue where the DetailView is not able to find the Processor object if the capitalization of the URL slug doesn't exactly match the slug field in the database. For example if I visit localhost:8000/detail/paypal I get the following error: Using the URLconf ... Django tried these URL patterns, in this order: ... detail/<slug:slug> [name='processor_detail'] The current path, detail/PayPal, matched the last one. In addition the url I entered in the url field changes to localhost:8000/detail/PayPal, capitalizing the letters. Finally, the url only works if I first visit it by clicking on a link to it from another page. After that it works perfectly normally whether I go incognito mode or not and no matter the capitalization I use in the slug. But if I go incognito mode and visit the url directly(ie, after not having visit it by clicking on a link to it from another page) it doesn't load at all whether I capitalize the slug … -
How to inject css from vue into a django template?
I have django as backend, vue as frontend - using boilerplate from https://github.com/ilikerobots/cookiecutter-vue-django I want to integrate quasar for my frontend. This is my setup in main.js: import './assets/main.css' import { createApp } from 'vue' import { createPinia } from 'pinia' import { Quasar } from 'quasar' import App from './App.vue' import 'quasar/dist/quasar.css' import '@quasar/extras/material-icons/material-icons.css' import '@quasar/extras/material-icons-outlined/material-icons-outlined.css' import '@quasar/extras/material-icons-round/material-icons-round.css' import '@quasar/extras/material-icons-sharp/material-icons-sharp.css' import '@quasar/extras/material-symbols-outlined/material-symbols-outlined.css' import '@quasar/extras/bootstrap-icons/bootstrap-icons.css' const app = createApp(App) app.use(createPinia()).use(Quasar, { plugins: {} // Add Quasar plugins here if needed }) app.mount('#app') I am injecting this in my django template header.html: {% extends "base.html" %} {% load vue_utils %} {% block content %} <div id="#app"></div> {% endblock %} {% block inline_javascript %} <script type="module" crossorigin src="{% vue_bundle_url 'main' %}"></script> {% endblock inline_javascript %} This is my vue component - App.vue: <template> <q-layout view="hHh lpR fFf"> <q-header elevated class="bg-primary text-white" height-hint="98"> <q-toolbar> <q-btn dense flat round icon="menu" @click="toggleLeftDrawer" /> <q-toolbar-title> <q-avatar> <img src="https://cdn.quasar.dev/logo-v2/svg/logo-mono-white.svg"> </q-avatar> Title </q-toolbar-title> </q-toolbar> <q-tabs align="left"> <q-route-tab to="/page1" label="Page One" /> <q-route-tab to="/page2" label="Page Two" /> <q-route-tab to="/page3" label="Page Three" /> </q-tabs> </q-header> <q-drawer show-if-above v-model="leftDrawerOpen" side="left" behavior="desktop" elevated> <!-- drawer content --> </q-drawer> <q-page-container> <router-view /> </q-page-container> </q-layout> </template> <script> import { ref } from 'vue' console.log("HERE") … -
Django Search Query to Match Names With and Without Accents in PostgreSQL
I'm using Django with a PostgreSQL database. In my database, I have a Users table with a name column that stores names with special characters, such as accents and the letter "Ñ". When performing a search, I want the results to include entries with and without accents. For example, if I have users with the names "lúlú" and "lulu", I would like both to appear in the search results, regardless of whether the search term includes accents. Here's my current code for the search functionality: def autocomplete(request): result = [] try: if request.user.is_staff and request.user.is_active: columns = request.GET.get("column_name").split(",") value = request.GET.get("column_value") columns = [ ("{}__icontains".format(column), request.GET.get("term")) for column in columns ] filters = request.GET.get("filters", []) if filters: filters = filters.split(",") filters = [tuple(x.split("=")) for x in filters] queryset = Filter( app_label=request.GET.get("app_label"), model_name=request.GET.get("model"), ).filter_by_list(columns, operator.or_, filters) for q in queryset: result.append( {"obj": q.to_json(), "label": str(q), "value": q.to_json()[value]} ) except AttributeError: pass return HttpResponse(json.dumps(result, cls=Codec), content_type="application/json") How can I modify my search to ignore accents and special characters so that a search for "lulu" also matches "lúlú" and vice versa? Are there any recommendations for handling accent-insensitive searches in Django with PostgreSQL? -
drf-spectacular (swagger) does not show request body of "application/json" in SwaggerUI
I have a login view with the following request body: However, when I select the content-type "application/json", I only receive the example, without the relevant data from my serializer that is shown in other content-types. I've tried numerous options to show the request body scheme of the request body, but nothing seems to work. This is my view: class LoginSerializer(serializers.Serializer): username = serializers.CharField( min_length=4, # Minimum length for login max_length=50, # Maximum length for login required=True, # Field is required help_text="email of the user", ) password = serializers.CharField( min_length=8, # Minimum length for password max_length=128, # Maximum length for password required=True, # Field is required style={'input_type': 'password'}, # This will hide the input in browsable API write_only=True, # Prevents password from being exposed in responses help_text="password of the user", ) @extend_schema(examples=[ OpenApiExample( 'Example', value={"username": "email of the user", "password": "password of the user"}, request_only=True, ) ],) class LoginView(GenericAPIView): """Authenticates the user via django session authentication cookie""" serializer_class = LoginSerializer def post(self, request): serializer = LoginSerializer(data=request.data) username = request.data.get('username') password = request.data.get('password') if not serializer.is_valid(): return ValidationError(serializer.errors) user = authenticate(username=username, password=password) if user is None: return ValidationError('Invalid credentials.') login(request, user) return JsonResponse({'detail': 'Successfully logged in.'}) and these are my drf settings: … -
When I use Jinja like this, it is calling all the tables and their columns. I only want to pass a particular column from the backend [duplicate]
{% for datas in data %} <option value="Hr">{{ datas.organization.org_name |slice:"15"}}</option> {% endfor %} When I retrieve data like this, the frontend will access all the database tables and columns. I only want to pass the org_name column. def department(request): data = main_collection.objects.all() return render(request, 'department/homee.html', {'data': data}) -
How to Build a Python-Based GraphQL API Gateway and Federation Service for Django Microservices?
I have a set of Django microservices, each exposing GraphQL APIs. Currently, I'm using Apollo Server with Apollo Federation to combine all subgraphs into a single supergraph. However, I've encountered a few limitations: Some of Apollo’s advanced features aren't free. The rover command (used to create a supergraph from subgraphs) requires an internet connection, which isn't ideal for my setup. I'm looking to build a custom solution in Python (using Flask, Django, or similar) that can serve as both an API gateway and a GraphQL federation service. The goal is to aggregate all subgraphs and generate a supergraph without relying on Apollo's proprietary tools. Has anyone implemented a similar solution or have suggestions for frameworks, libraries, or strategies to accomplish this? Any advice on building this gateway and handling GraphQL federation in Python would be greatly appreciated. I'm looking to build a custom solution in Python (using Flask, Django, or similar) -
Dynamically load secure components into a React app from Django backend after user authentication
I am building a Django/React application with two types of user experiences: Front-end browsing: Accessible with or without logging in. Dashboard: Accessible only to authenticated users. The dashboard contains sensitive components with static information that I prefer to keep entirely off the client side until the user is authenticated. This is important for both security and performance reasons. Is there a way in this Django/React setup to dynamically load (or send) additional React components or HTML from Django only after the user has successfully logged in? I’m looking for a secure and efficient way to deliver these sensitive components without including them in the initial bundle for all users. -
In pytest set up databases mirroring and test
I have a Django app that reads a read_only replica from a model in the DB. So in the pytest conftest fixtures, I have this settings.DATABASES["read_only"]["TEST"] = {"MIRROR": "default"} but when I instantiate fixtures, the read_only database doesn't have the data that I created with factoryboy. @pytest.fixture() def populate_cache() -> Callable[[CountryFactory], Household]: """ Fixture to populate the dashboard cache for a specific business area, verify creation in the default DB, and ensure readability in the read_only DB. """ def _populate_cache(goodcountry: CountryFactory) -> Household: # Create household and related records household, individuals = create_household("business_area": afghanistan) PaymentFactory.create_batch(5, household=household) PaymentRecordFactory.create_batch(3, household=household) # Verify data exists in the default DB payment_count_default = Payment.objects.using("default").filter(household=household).count() print(f"Payments in default DB: {payment_count_default}") # Verify data accessibility in the read_only DB payment_count_read_only = Payment.objects.using("read_only").filter(household=household).count() print(f"Payments in read_only DB: {payment_count_read_only}") # Assert that the data is accessible in the read_only DB assert payment_count_read_only == payment_count_default, "Mismatch in Payment count between default and read_only DBs." return household return _populate_dashboard_cache and I get an error: Payments in default DB: 5 Payments in read_only DB: 0 -
504 Gateway Timeout in Production for Django API Endpoint with Meta Products Feed API, but Works Locally
I'm working on a Django API that integrates with the Meta API for WhatsApp product feeds. This endpoint works perfectly on my local machine, but when I deploy it to production, it returns a 504 Gateway Timeout error. Details: Local Request (Works): curl -X POST http://127.0.0.1:8000/api/whatseat/save-changes/ -d "business_id=2" Production Request (504 Gateway Timeout): curl -X POST https://<production-url>/api/whatseat/save-changes/ -H "Authorization: Token <token>" -d '{"business_id": 2}' Key Observations: Error happens only in production—locally, the endpoint works fine. When this endpoint is called without the necessary WhatsApp data, it correctly returns a prompt to complete settings. So, the problem seems to occur during an external API request to the Meta (WhatsApp) API. def post(self, request): business_id = request.data.get('business_id') try: whatsapp_business = WhatsApp.objects.get(business=business_id) except ObjectDoesNotExist: return Response({"message": "Complete WhatsApp setup in settings"}, status=400) access_token = whatsapp_business.access_token product_catalog_id = whatsapp_business.catalog_id if not all([access_token, product_catalog_id]): return Response({"error": "Missing Access Token or Catalog ID"}, status=400) # External API request (seems to be the timeout issue in production) try: product_feed_data = request.build_absolute_uri(reverse('get-product-feeds')) response = requests.get(product_feed_data, params={ 'access_token': access_token, 'product_catalog_id': product_catalog_id }) response.raise_for_status() except requests.RequestException as e: return Response({'error': str(e)}, status=500) # Other logic... (contains another call to graph api for uploading the new data feed) Troubleshooting Attempts: Local … -
Show product name in template django
I want to show all of the user orders in its panel so, I have following models: this is my product model in django and in my order model I have productfk field that is id of user product. class Product(models.Model): id= models.IntegerField(primary_key=True) activedate = models.DateField() name= models.CharField(max_length=256) description = models.TextField() #following u can set user owner for this row #owner =models.ForeignKey(to=User,on_delete=models.CASCADE) category = models.CharField(max_length=256) unit =models.CharField(max_length=50) active = models.BooleanField(default=False) unitprice = models.DecimalField(max_digits=18, decimal_places=0) quantity = models.FloatField() minorder = models.FloatField() maxorder = models.FloatField() readytopay = models.BooleanField(default=False) showquantity = models.BooleanField(default=False) lastupdate = models.DateField() def __str__(self): return self.name and folloring is my order model: class Orders(models.Model): id = models.IntegerField(primary_key=True) customerfk = models.ForeignKey(to=User,on_delete=models.CASCADE) oxygenid = models.IntegerField() financialfk = models.IntegerField() orderdate = models.DateTimeField() productfk = models.IntegerField() unit = models.CharField(max_length=50) quantity = models.FloatField() unitprice = models.DecimalField(max_digits=18, decimal_places=0) discount = models.DecimalField(max_digits=18, decimal_places=0) totalprice = models.DecimalField(max_digits=18, decimal_places=0) onlinepayment = models.DecimalField(max_digits=18, decimal_places=0) customerdesc = models.TextField() companydesc = models.TextField() userip = models.CharField(max_length=20) status = models.CharField(max_length=50) creationdate = models.DateTimeField() def __str__(self): return self.status and this is my order view @login_required(login_url='/authentication/login') def index(request): unit=Unit.objects.all() orderstatus=OrderStatus.objects.all() #order=Orders.objects.all() order =Orders.objects.select_related('customerfk') paginator = Paginator(order,20) page_number = request.GET.get('page') page_obj = Paginator.get_page(paginator,page_number) #currency = UserPreference.objects.get(user=request.user).currency context={ 'order':order, 'orderstatus':orderstatus, 'unit':unit, 'page_obj':page_obj } return render(request,'orders/index.html',context) how i can … -
<link> has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
I have a registration form to my website when I submit in web browsers (desktop) it successfully submitted but when I try to register using my browsers in mobile it shows Access to XMLHttpRequest at 'https://<link>/Member_Management/api/MembersDetails/' from origin '<link>?' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. I already tried to multiple browsers from different devices this is already setup in my settings: CORS_ALLOW_ALL_ORIGINS = True # CORS configuration CORS_ALLOW_ALL_ORIGINS = True CORS_ALLOW_CREDENTIALS = True CSRF_TRUSTED_ORIGINS = [ <links> ] CORS_ALLOW_HEADERS = [ 'accept', 'authorization', 'content-type', 'x-csrftoken', 'x-requested-with', ] CORS_ALLOW_METHODS = [ 'DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', ] my ajax call $.ajax({ url: memberbackend_link + '/Member_Management/api/MembersDetails/', type: 'POST', data: memberData, contentType: false, processData: false, success: function(response) { How to fix the corsheaders to my website to be able to submit using mobile browsers -
Caddy for https on top of working django asgi app supposedly breacks websocket communication
I have a working django asgi application that uses channels for websocket communication with daphne and redis, and is running in a dockerized setup. To enable the secure https protocol, I tried going for a solution using caddy with selfsigned certificates (the app is deployed to a server internal to my organization). I get the caddy setup working so that I can access via https, but it seems to break the websocket part. For example, on clicking some buttons that should trigger websocket communication, I get errors like Uncaught ReferenceError: can't access lexical declaration 'ws' before initialization with a pointer to where I do a ws.send(...) in javascript. The websocket is initialized with let ws = new WebSocket('ws://' + window.location.host + '/ws/validation/'); Here is my docker-compose.yml: services: mywebapp: build: context: . dockerfile: Dockerfile.prod ssh: - default command: daphne -b 0.0.0.0 -p 8080 mywebapp.asgi:application ports: - "8080:8080" volumes: - .:/app depends_on: - redis env_file: - .env redis: image: redis:latest ports: - "6379:6379" caddy: image: caddy:latest ports: - "8081:80" - "8443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - /selfsigned.crt:/etc/ssl/certs/selfsigned.crt - /selfsigned.key:/etc/ssl/private/selfsigned.key depends_on: - mywebapp volumes: caddy_data: And this is my Caddyfile: example.com { tls /etc/ssl/certs/selfsigned.crt /etc/ssl/private/selfsigned.key reverse_proxy mywebapp:8080 { header_up Host {host} header_up X-Real-IP {remote} … -
difficulty to store staticfiles on S3 using STORAGES setting in django >=4.2
for file storage on AWS S3, django 4.2 introduced the STORAGES dictionary setting, replacing the individual DEFAULT_FILE_STORAGE and STATICFILES_STORAGE setting variables as explained on the django-storages documentation. I am posting this question because I do not find good resources about this "new" STORAGES dictionary setting. The documentation is light unfortunately about what the content of this STORAGES dictionary ought to be: STORAGES = { "default": { "BACKEND": "storages.backends.s3.S3Storage", "OPTIONS": { ...your_options_here }, }, } adding that to... put static files on S3 via collectstatic on Django >= 4.2 you'd include the staticfiles key (at the same level as default) Referring to another source, I defined the following STORAGES dictionary in my settings.py: DEFAULT_STORAGE_BACKEND = "storages.backends.s3.S3Storage" DEFAULT_STORAGE_OPTIONS = { "access_key": os.getenv("S3_ACCESS_KEY"), "secret_key": os.getenv("S3_SECRET_KEY"), "bucket_name": os.getenv("S3_BUCKET"), "region_name": os.getenv("S3_REGION"), } STORAGES = { "default": { "BACKEND": DEFAULT_STORAGE_BACKEND, "OPTIONS": DEFAULT_STORAGE_OPTIONS, }, "staticfiles": { "BACKEND": "storages.backends.s3.S3StaticStorage" } } But when trying to collect my static files, I get the following error: 2024-11-06T04:01:52.930704485Z Collecting static files... 2024-11-06T04:01:57.469881851Z Traceback (most recent call last): 2024-11-06T04:01:57.470527987Z File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main 2024-11-06T04:01:57.474490708Z return _run_code(code, main_globals, None, 2024-11-06T04:01:57.475537977Z File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code 2024-11-06T04:01:57.475962333Z exec(code, run_globals) 2024-11-06T04:01:57.476460840Z File "/opt/project/src/manage.py", line 22, in <module> 2024-11-06T04:01:57.476786833Z main() 2024-11-06T04:01:57.476935378Z File "/opt/project/src/manage.py", … -
Python updating a global resource pool causes requests to block
Backdrop: Service basics: Django framework, cpu intensive service, start five uwsgi processes Because the underlying resource of the service is very large (2G), there are multiple versions, and this variable cannot be pickled, it is designed in the form of five processes The shape of this resource is as follows: GResource = {'key_1':resource_1, 'key_2':resource_2,'key_3':resource_3} Each request accesses this global variable GResource. At the same time, GResource is updated by BackgroundScheduler every two minutes Request time monitoring shows that when the 'GResource' cycle is updated, the request time will be higher than usual, usually 50 to 300ms, or even higher May I ask why -
uwsgi has not killed and became zombie, when stop by max-requests
I have problem... I set up configuration property 'max-requests'. When server receive requests at max-requests, uwsgi tell 'The work of process PID is done. Seeya!' and respawn worker at now But, my uwsgi became zombie process.... service 232327 0.0 0.0 0 0 ? Zl Nov05 0:06 [uwsgi] <defunct> So i configure 'vaccum', but it is not solution how do i can solve this problem.... This is my uwsgi configuration and I run server with django. [uwsgi] virtualenv = /home/service/service/.venv socket = /tmp/uwsgi_sock pidfile2=/tmp/service.pid module=project.wsgi callable=application master=true processes=1 threads=2 max-requests=2500 harakiri=15 lazy-apps=true vaccum=true logto=/var/log/service/uwsgi.log log-maxsize = 32428800 enable-threads = true ignore-write-errors=true ignore-sigpipe=true disable-write-exception=true I add configure 'vaccum'... and harakiri short.... but above harakiri seconds, process still zombieyour text -
why is my server showing bad request in the log as soon as it starts and it was working fine a few days ago
I deployed my Django project on Render, but every time I try to access the root URL (/), I receive a 400 Bad Request error. I have confirmed that my settings are configured with ALLOWED_HOSTS and CSRF_TRUSTED_ORIGINS to include the Render domain (challo-backend-1.onrender.com). My Redis server is configured to 127.0.0.1:6379 for Channels, and I’m using Django 5.1.2. ==> Your service is live 🎉 127.0.0.1 - - [05/Nov/2024:16:41:12 +0000] "GET / HTTP/1.1" 400 143 "-" "Go-http-client/2.0" [2024-11-05 16:42:10 +0000] [95] [INFO] Handling signal: term [2024-11-05 16:42:10 +0000] [98] [INFO] Worker exiting (pid: 98) [2024-11-05 16:42:11 +0000] [95] [INFO] Shutting down: Master` """ Django settings for challo project. Generated by 'django-admin startproject' using Django 5.1.2. For more information on this file, see https://docs.djangoproject.com/en/5.1/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/5.1/ref/settings/ """ import dj_database_url from pathlib import Path from datetime import timedelta import os from django.core.exceptions import ImproperlyConfigured # Base Directory BASE_DIR = Path(__file__).resolve().parent.parent # Security settings (replace with your environment variable) def get_secret_key(): try: return os.environ['SECRET_KEY'] except KeyError: raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.") SECRET_KEY = get_secret_key() # Allowed Hosts and CSRF Trusted Origins ALLOWED_HOSTS = ['challo-backend-1.onrender.com', '127.0.0.1', 'localhost'] CSRF_TRUSTED_ORIGINS = ['https://challo-backend-1.onrender.com'] # Channel Layers CHANNEL_LAYERS … -
How to deploy Django app in docker with UV
I am writing a Dockerfile Configuration for a Django app. I am usin uv to manage my dependencies in a virtualenv. The app runs normally outside the container, but when I try to run it from the container, it can't find the django package: from django.core.wsgi import get_wsgi_application ModuleNotFoundError: No module named 'django' This tells me that the recreation of the virtualenv inside the container is not working as it should. But I cannot find the problem. Here is my Dockerfile: FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim WORKDIR /app # Enable bytecode compilation ENV UV_COMPILE_BYTECODE=1 # Copy from the cache instead of linking since it's a mounted volume ENV UV_LINK_MODE=copy #ENV PYTHONDONTWRITEBYTECODE 1 #ENV PYTHONUNBUFFERED 1 RUN apt-get update && \ apt-get install -y --no-install-recommends gcc python3-dev libpq-dev gunicorn &&\ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install the project's dependencies using the lockfile and settings RUN --mount=type=cache,target=/root/.cache/uv \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ uv sync --frozen --no-install-project --no-dev # Then, add the rest of the project source code and install it # Installing separately from its dependencies allows optimal layer caching ADD . /app RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --frozen --no-dev #COPY --from=builder /usr/local/lib/python3.11/site-packages/ /usr/local/lib/python3.11/site-packages/ # Place executables in the environment at the … -
frontend cors error 'access-control-allow-credentials'
im using angular for my frontend and django with rest framework for my backend any request made from the front end gives the following message in my console Access to fetch at 'http://localhost:8000/login/' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. this is confusing as my frontend has a interceptor which enables withCredentials export function authInterceptor(req: HttpRequest<unknown>, next: HttpHandlerFn){ console.log(req) const modifiedRequest = req.clone({ withCredentials: true, }); return next(modifiedRequest) } and my backend has allow credentials set to true so im not sure where this error is coming from #cors settings CORS_ALLOWED_ORIGINS = [ 'http://localhost:4200', ] CORS_ALLOW_CREDENTIALS: True CSRF_TRUSTED_ORIGINS = [ 'http://localhost:4200', ] CORS_ALLOW_HEADERS = ( *default_headers, ) so i removed withCredentials from my interceptor which allowed requests to go through but im using cookies for auth and none are set in my frontend when you log in -
Django + React on GPC Cloud Run, post request comes back with a 403 error
I'm attempting to submit a post request for a payment with Stripe. Despite trying many solutions on stackoverflow / reccomendations from CGPT my axios post request is still getting 403 blocked. I'm using a react frontend and a Django backend. I have a view get_csrf view looks like this. def get_csrf(request): return JsonResponse({"csrf_token": get_token(request)}) My react frontend has the following: axios.defaults.withCredentials = true; const csrf = await axios.get("https://##########################.run.app/api/get-csrf"); const csrfToken = csrf.data['csrf_token']; axios.defaults.headers.common['X-CSRFToken'] = csrfToken; Cookies.set('csrftoken', csrfToken); document.cookie shows there is a csrfcookie set. The request shows that X-CSRFToken and withCredentials are set. When submitting the from axios comes back with a 403 response. GCP logs report: Forbidden (CSRF cookie not set.): /api/create-payment-intent/ My django settings contain the following: CSRF_TRUSTED_ORIGINS = [ "https://owenmitchell.github.io", 'http://localhost:3000', "http://127.0.0.1:3000"] CSRF_COOKIE_HTTPONLY = False CSRF_COOKIE_SAMESITE = 'None' CSRF_COOKIE_SECURE = True CSRF_COOKIE_DOMAIN = 'owenmitchell.github.io' The reactfrontend is setup as a github pages with the above domain name. My CORS settings are: CORS_ALLOW_ALL_ORIGINS = True CORS_ALLOW_CREDENTIALS = True CORS_ALLOWED_ORIGINS = [ "http://localhost:3000", # Frontend URL "https://owenmitchell.github.io", "http://127.0.0.1:3000", ] CORS_ALLOW_METHODS = [ "GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", ] I have django-cors-headers installed, 'corsheaders' is in my installed apps, and the cors middleware is in my middleware at the … -
Is it possible to configure leeway for authlib django?
I'm using Authlib with Django. We're migrating from one identity provider to another, and the new one has a much smaller expires_in for their tokens (going from 3600 to 60). 60 is the default leeway time, so when I try to do oauth.<idp_name>.userinfo(token=token) like I did before, it checks if the token is expired, link to definition of is_expired. I cannot pass leeway directly to authlib.integrations.django_client.OAuth() which is what I'm using to then register the IdP. It doesn't seem to be an option for the register method nor the config in settings.py. I see that leeway could be passed to OAuth2Client but I can't figure out when that class is instantiated or if I have any control over defining the variable at that point. I'm starting to think that it is simply not yet possible with the library (given that a similar demand was made previously) but I wanted to check here first before I submit a feature request. -
Why do custom managers break related object queries?
I know this is a long one, but I promise its worth a read: useful solutions, and learning about the inner workings of Django! The setup I came across this issue while working with a logged model with a ForeignKey relationship to another logged model. When deserializing an instance, I want to include its related instances. Note that I use the django_rest_framework serializers and specify the related fields in the Meta.fields option. This isn't very relevant so I won't include the code but can if requested. Tiny Example: models.py class A(models.Model): ... class B(models.Model): a = models.models.ForeignKey(A, on_delete=models.CASCADE) ... Deserializing an instance of A should return something such as: {..., 'b_set': [3, 6, 7], ...}. We get a possibly empty array of related IDs. The issue The issue arises when adding custom managers: First, we define a LoggedModelManager, all it does is filter out the logs from the current instances. Second, we define the models A and its logs ALog. A gets the custom manager -> to ensure A.objects.all() only returns instances of A, not ALog, and then we ensure ALog has the default manager (django takes care of filtering away the non-log instances). Third we do the same for … -
How to sort and show the N latest results in Django HTML template?
This is my index.html: {% extends "base.html" %} {% block content %} <table class="table table-bordered table-hover text-center"> <thead> <tr> <th>Title</th> <th>Genre</th> <th>Stock</th> <th>Daily Rate</th> <th>Date Created</th> </tr> </thead> <tbody> {% for movie in movies %} <tr> <td><a href="{% url 'movies:detail' movie.id %}">{{ movie.title }}</a></td> <td>{{ movie.genre }}</td> <td>{{movie.number_in_stock }}</td> <td>{{ movie.daily_rate }}</td> <td>{{ movie.date_created|date:'Y-m-d H:i:s' }}</td> </tr> {% endfor %} </tbody> </table> {% endblock content %} I'm learning Django and at the moment, all of the movies are shown in the index page. I'm curious how can I show the latest 10 movie order by the movie.id and in reverse? I mean the latest should be on top. I saw this question's answers but they either didn't change or show nothing. I tried these: {% for movie in movies|dictsort:"id" %} {% for movie in movies|dictsort:"movie.id" %} {% for movie in movies.sort(key=lambda movie: movie['id'], reverse=True) %} # I thought it would work in Pythonic way:( This is the last line's error: TemplateSyntaxError at /movies/ 'for' statements should use the format 'for x in y': for movie in movies.sort(key=lambda movie: movie['id'], reverse=True) Request Method: GET Request URL: http://127.0.0.1:8000/movies/ Django Version: 4.2.16 Exception Type: TemplateSyntaxError Exception Value: 'for' statements should use the format … -
Im getting this error after trying import DATABASE_URL information from the .env
File "D:\HAZEL\GITHUB\GOLDEN PROJECT\GOLDEN-DJANGO\virtual\Lib\site-packages\environ\environ.py", line 392, in get_value raise ImproperlyConfigured(error_msg) from exc django.core.exceptions.ImproperlyConfigured: Set the DATABASE_URL environment variable This is my settings.py import os import dj_database_url import environ # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent env = environ.Env() environ.Env.read_env(os.path.join(BASE_DIR, '.env')) DATABASES = { 'default': dj_database_url.parse(env('DATABASE_URL')) } additionally on importing environ and dj_database_url they are underlined and show Import "dj_database_url" could not be resolved error when i hover over it... im kindly requesting for help... -
Why does my Django ORM query with naive datetimes return the same results as a PostgreSQL query with time zone-aware datetimes?
I'm using Django to filter reservations based on a date range with naive datetimes. My Django ORM query is: start_d_date_naive = "2024-11-3 00:00" end_d_date_naive = "2024-11-3 23:59" reserve_naive = Reservations.objects.filter( updated_at__range=(start_d_date_naive, end_d_date_naive), status="canceled" ) This translates to the following SQL query: SELECT * FROM "consultant_reservations" WHERE "consultant_reservations"."status" = 'canceled' AND "consultant_reservations"."updated_at" BETWEEN '2024-11-03 00:00:00' AND '2024-11-03 23:59:00' However, the results are the same as if I had run this query directly in PostgreSQL: SELECT * FROM "consultant_reservations" WHERE updated_at BETWEEN '2024-11-03 00:00:00+03:30' AND '2024-11-03 23:59:00+03:30' AND status='canceled'; Why does the Django ORM query with naive datetimes return the same results as the PostgreSQL query with time zone-aware datetimes?