Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django project hosting with Vercel
I am trying to host my Django project on Vercel, but it shows some errors related to the 'requirements.txt' file in my project, something related to dependencies. This is the error message: Error: Command failed: pip3.12 install --disable-pip-version-check --target . --upgrade -r /vercel/path0/requirements.txt ERROR: Cannot install -r /vercel/path0/requirements.txt (line 19) and idna==3.3 because these package versions have conflicting dependencies. ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts -
In Django, combining and ordering counts across two model fields
I have these two simplified models, representing people and letters that have been sent and received by those people: class Person(models.Model): name = models.CharField(max_length=200, blank=False) class Letter(models.Model): sender = models.ForeignKey(Person, blank=False) recipient = models.ForeignKey(Person, blank=False) I want to display a list of Persons ordered by how many times they've sent or received any letters. I started doing this very laboriously, but figure there must be a simpler way. e.g., this gets the Person IDs and counts of how many times they've sent a Letter: senders = ( Letter.objects.order_by() .values(person_id=F("sender")) .annotate(count=Count("pk")) .distinct() ) I can do the same for recipients. Then combine the two into a single list/dict, adding the counts together. Sort that. Then inflate that data with the actual Person objects, and pass that to the template. But I feel there must be a less laborious way, starting, I think, with a single query to get the combined sent + received counts. -
can't connect to mysql docker
when i launch the command 'python manage.py makemigrations' error : C:\Users\pc\AppData\Local\Programs\Python\Python313\Lib\site-packages\django\core\management\commands\makemigrations.py:160: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': (2003, "Can't connect to MySQL server on 'mysql' ([Errno 11001] getaddrinfo failed)") warnings.warn ( No changes detected im using docker and i launched mysql-container (dev-mysql) I am trying to launch django as backend with mysql database in docker container locally and stumble upon the error. i dont why know why im getting this problem, i tried so many solutions my settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'tp', 'USER': 'root', 'PASSWORD': '125', 'HOST': 'mysql', 'PORT': 3306, } } docker-compose version: '3.8' services: mysql: image: mysql:8.0 container_name: dev-mysql restart: always environment: MYSQL_ROOT_PASSWORD: 125 MYSQL_DATABASE: tp ports: - "3307:3306" volumes: - mysql_data:/var/lib/mysql # Use the named volume networks: - my_bridge healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 30s timeout: 10s retries: 5 backend-app: image: backend:latest # Use the already built image container_name: backend-app restart: always ports: - "8001:8000" depends_on: mysql: condition: service_healthy networks: - my_bridge healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000/admin/login/?next=/admin/ || exit 1"] interval: 30s timeout: 10s retries: 5 frontend-app: image: frontend-app:latest # Use the already built image container_name: frontend-app restart: always ports: … -
why my django app not including content-type on request headers?
I have simple Django app with some request send via ajax and django will return different responses depends on content-type I declare on ajax request. This code work fine on my local computer, however in my hosting server I always get 500 server error , it return keyerror: content-type. After checking headers list I notice that content-type not exist in the headers list on hosting, but in my local computer it exists. Django lines: if request.headers['content-type'] == 'application/json': response = render_to_string(self.templates, {'form': form}, request) data = {'success': True, 'rendered': response, 'title': self.title} return JsonResponse(data) else: return render(request, 'base.html', {'form': form, 'title': self.title, 'template': self.templates}) AJAX Lines: $.ajax({ url: link, contentType: 'application/json', dataType: 'json', success: function(data){ $('title').html(data.title); $('#content').html(data.rendered); window.history.pushState({'data': data, 'path': link}, "", link) $('#nav-menu').attr('data-path', link); I confuse what the cause, I already collected staticfiles. -
Deployed Django app returning 301s and NS_ERROR_REDIRECT_LOOP
I've just setup my Django app in my VPS using gunicorn and nginx, and I cannot access it in my browser through the custom domain that I assigned it to (ipantun.com) because it keeps returning 301s and finally stopped with NS_ERROR_REDIRECT_LOOP. I followed this tutorial, and everything works fine with running it locally and also using gunicorn. So I suspect it may have something to do with how I configure my nginx and maybe even Cloudflare which is my domain registrar. A thing that I noticed is if I go to the URL ipantun.com, then it will redirect to www.ipantun.com and it will also query the full URL as its URI as in the final URL will be https://www.ipantun.com/www.ipantun.com. I expected the redirect of non-www to www as I have setup a Redirect Rule on Cloudflare to do so, but the querying is something I've never encountered before so I'm lost. Every log files of gunicorn and nginx showed nothing wrong. Everything in /etc/nginx/sites-available is also in /etc/nginx/sites-enabled. Not sure if it's relevant, but I'm also serving another React app from the same server on the same port ie. port 80. But as you'll see in the nginx config files … -
can't connect to mysql server - docker
I want to launch python manage.py makemigrations im using docker and i launched mysql-container I am trying to launch python backend with mysql database in docker container locally and stumble upon the error : i dont why im getting this problem, i tried so many solutions "Can't connect to MySQL server on 'mysql' ([Errno 11001] getaddrinfo failed)") warnings.warn( No changes detected my settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'tp', 'USER': 'root', 'PASSWORD': '125', 'HOST': 'mysql-container', # ou 'localhost' si vous utilisez un port local 'PORT': '3306', } } my docker-composer services: mysql: image: mysql:latest container_name: mysql-container hostname: 'mysql' restart: always environment: MYSQL_USER: root MYSQL_ROOT_PASSWORD: 125 MYSQL_DATABASE: tp ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql # Use the named volume networks: - my_bridge healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 30s timeout: 10s retries: 5 backend-app: build: context: ./backend # Assure-toi que le chemin est correct dockerfile: Dockerfile # Assure-toi que le Dockerfile est présent image: backend:latest # Use the already built image container_name: backend-app restart: always ports: - "8000:8000" depends_on: mysql: condition: service_healthy networks: - my_bridge healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000/admin/login/?next=/admin/ || exit 1"] interval: 30s timeout: 10s retries: 5 frontend-app: build: context: ./frontend dockerfile: Dockerfile … -
Choreo: Connecting Repo without Creating a Component?
Choreo newbie here... I am going through Tech With Tim's YouTube tutorial named "Django & React Web App Tutorial - Authentication, Databases, Deployment & More..." and I ran into a difference between his video (made March 2024) and how Choreo works now (19 Oct 2024). In Tim's video, he made a new project, linked it with a GitHub repo but without creating an initial component (see screenshot below). Is there a way to still do that? Image from video from Tech With Tim I started by creating a project by entering a name and clicking "Create". New Project dialog Then clicked "Start" in the "Create Multiple Components" section to connect a Git repository. Connect Repo But there is no way to then create the project with the connected repo without creating a component. Must create a component Is the way Tim did it in his video not available anymore? Did I make a mistake somewhere that took me in a different path? -
Python Django Course Project
I need help with my Django Project to finish and submit it by tomorrow @2pm GMT. The Project detail is to build a RESTFUL API for a library management system. I have already built the database Models and done the necessary configurations for the Books, Library Attendant, the Authors, Checking out. Also built the views for all the basic operations that will take place... Looking for help with the user authentication for the Django Application, I will need help with some errors that pop-up in the browser when the server is started. Anyone who is good with Django and wants to help me should please reach out to me here on Stack overflow or e-mail at znyadzi1@gmail.com Your help is greatly appreciated. Thanks and Regards Zoe Nyadzi I tried to use AI support for the project but it seems not to be going on well. I tried all the odds devv ai, chatGPT, Copilot, but to no avil. -
Getting Id of another Django form inside of other Django form
Hi guys i want to create multi step form like this: ask for connection name and connection type and save it in database and after that redirect user to new form for connection details but i want one field as foreign key pointed to item created in last form. models: from django import models class Form1Model(models.Model): name = models.CharField(max_length=100) connection_type=models.CharField(max_length=100) def __str__(self) -> str: return self.name class Form2Model(models.Model): name=models.CharField(max_length=100) protocol=models.CharField(max_length=5) connection_name=models.ForeignKey(Form1, on_delete=models.CASCADE) def __str__(self) -> str: return self.name my forms: from django import forms from inventory.models import Form1, Form2 class Form1Form(forms.ModelForm): class Meta: model = Form1 fields = "__all__" class Form2Form(forms.ModelForm): form1 = forms.ModelChoiceField(queryset=Form1.objects.all()) class Meta: model = Form2 fields = ["form1", "name", "protocol"] now i want to know how i must create my views thnx for help guys. -
cant connect to mysql server
I want to launch python manage.py makemigrations im using docker and i launched mysql-container I am trying to launch python backend with mysql database in docker container locally and stumble upon the error : i dont why im getting this problem, i tried so many solutions "Can't connect to MySQL server on 'mysql' ([Errno 11001] getaddrinfo failed)") warnings.warn( No changes detected my settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'tp', 'USER': 'root', 'PASSWORD': '125', 'HOST': 'mysql', # ou 'localhost' si vous utilisez un port local 'PORT': '3306', } } my docker-composer services: mysql: image: mysql:latest container_name: mysql-container restart: always environment: MYSQL_USER: root MYSQL_ROOT_PASSWORD: 125 MYSQL_DATABASE: tp ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql # Use the named volume networks: - my_bridge healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 30s timeout: 10s retries: 5 i want to make migrations on django -
How to stop auto generating text in ShortUUIDField field
I have a model where ShortUUIDField automatically generating ids I want to disable the auto generation class Mymodel(models.Model): pid=ShortUUIDField(length=10,max_length=100,prefix="prd",alphabet="abcdef") sample_id = ShortUUIDField(length=10, max_length=100, prefix="var", alphabet="abcdef", null=True, blank=True,default=lambda: None) I added default=lambda: None in sample_id field but it is still automatically generating the ids. I want the id default to be blank -
gRPC - postgres connection issue in django: connection already closed
I am using django-grpc-framework in my django rest project. I setup a grpc service to get some user information from this project using grpc server. This grpc service is running using kubernetes, and after a while of running, I get the following error: django.db.utils.InterfaceError: connection already closed I restart the deployment and the issue goes away. I recently added the following line after every grpc service method: django.db.close_old_connections() but now I see that some rpc calls take 20 ms to connect to the database, and this is slowing the response time. Is there any other way to fix my problem without causing long response times. -
Django template not loading correctly
In my django project i am using a template named main.html in this html file i am importing all the required css and js files i will share the structure below {% load static %} <!-- site Favicon --> <link rel="icon" href="{% static 'img/favicon/favicon.png' %}" sizes="32x32"> <!-- css Icon Font --> <link rel="stylesheet" href="{% static 'css/vendor/gicons.css' %}"> <!-- Tailwindcss --> <script src="{% static 'js/plugins/tailwindcss3.4.1' %}"></script> {% block content %} {% endblock %} <script src="{% static 'js/plugins/jquery-3.7.1.min.js ' %}"></script> and i am extending this template to product-details.html file like below {% extends 'index/main.html' %} {% load static %} {% block content %} content of the product-details.html {% endblock %} now the problem is css of this product-details.html is not loading correctly and i am using tailwind as a framework is my way of extending template correct? I tried to load the page but css not loading properly -
dJango Production and Test database QC check on data
I am looking to create a data QC check between our production and development environments. This is to ensure our systems templates are set up the same, there will be NO data writing to the database read-only the models are as such: class Plan(models.Model): DatabaseOperations.max_name_length = lambda s: 40 # Define fields that match the columns in your existing table PROJECT_CODE = models.TextField(primary_key=True) PROJECT_NAME = models.TextField() IS_TEMPLATE_PROJECT = models.TextField() PLANTYPE = models.TextField() ABR_SUPP_BY_SSG = models.TextField() class Meta: db_table = '\"schema\".\"table\"' # specify the schema and table name managed = False # Prevent Django from managing the table schema def __str__(self): return self.PROJECT_NAME class Activity(models.Model): DatabaseOperations.max_name_length = lambda s: 40 # Define fields that match the columns in your existing table ACTIVITY_ID = models.TextField(primary_key=True) PROJECT_CODE = models.ForeignKey(Plan, on_delete=models.DO_NOTHING, db_column='PROJECT_CODE', related_name='activities') ACTIVITY_NAME = models.TextField() LINE_IDENTIFIER = models.IntegerField() class Meta: db_table = '\"schamea\".\"table\"' # specify the schema and table name managed = False # Prevent Django from managing the table schema def __str__(self): return self.ACTIVITY_NAME I am using an HTML form to allow the users to select the database to use (more will be added later <form method="GET" action="{% url 'list_plans' %}"> <label for="Databases">Choose Databases:</label><br> <input type="checkbox" id="db1" name="databases" value="db1"> <label for="db1">Production</label><br> <input … -
Force host part in BASE url when using Vite's development server
I have a somewhat non-conventional setup where I use a Vite/Vue SSR server for template rendering behind a Django server. I.e. Django calls node, gets html back, and sends it back to the browser. I encountered a problem with Vite's dev server in that it doesn't respect a full BASE url like https://bar.com/foo/ (it strips out the origin part, which is documented behavior). Without the origin part, however, the generated html and other assets contain urls that the browser treats as relative to the origin of the Django server, which obviously doesn't work. Is there a way to force Vite to include the origin in the BASE url, or is my only option to proxy back to the Vite server from Django? -
getting error in google sign in using javascript
when im trying to sign in through google I'm able to proceed but at this point its showing blank strong text {% block content %} <html lang="en"> <head> <meta charset="UTF-8"> <meta name="referrer" content="strict-origin-when-cross-origin"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="google-signin-client_id" content="my client id"> <title>Google Sign-In with JWT</title> <script src="https://accounts.google.com/gsi/client" async defer></script> </head> <body> <h1>Google Sign-In</h1> <div id="g_id_onload" data-client_id = "my client id" data-callback ="handleCredentialResponse" data-login-uri = "http://127.0.0.1:8000/user/login/" data-auto_prompt ="false"> </div> <div class="g_id_signin" data-type="standard" data-size="large" data-theme="outline" data-text="sign_in_with" data-shape="rectangular" data-logo_alignment="left"> </div> <script> console.log("Current origin:", window.location.origin); function handleCredentialResponse(response) { console.log("Received response from Google Sign-In"); const idToken = response.credential; console.log("ID Token:", idToken); fetch('http://127.0.0.1:8000/user/login/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify({ token: idToken }), credentials: 'include' }) .then(response => { console.log("Received response from server"); return response.json(); }) .then(data => { if (data.access) { console.log("JWT Token:", data.access); localStorage.setItem('jwt', data.access); alert('Login successful!'); } else { console.error("Login failed:", data); alert('Login failed!'); } }) .catch(error => { console.error('Error:', error); alert('An error occurred during login'); }); } window.onload = function() { console.log("Page loaded. Google Sign-In should initialize soon."); }; </script> </body> </html> tried everything but not move ahead using javascript more specifically HTML page to just get idToken from google and then sending it to backend … -
Restricting color options in Django admin form based on previously selected colors
I have two models, Product and Color, connected via ManyToManyFields. I want to restrict the color options available when editing a product in the Django admin interface. Models: class Color(models.Model): coid = ShortUUIDField(length=10, max_length=100, prefix="col", alphabet="abcdefgh") name = models.CharField(max_length=20) code = ColorField(default='#FF0000') product_varients = models.ManyToManyField('Product', related_name='color_variants', blank=True) image = models.ImageField(upload_to=color_directory_path, default="product.jpg") class Product(models.Model): pid = ShortUUIDField(length=10, max_length=100, prefix="prd", alphabet="abcdef") title = models.CharField(max_length=100, default="Apple") color = models.ManyToManyField(Color, blank=True) price = models.DecimalField(max_digits=10, decimal_places=2, default=1.99) Goal: When creating or editing a product, I want to restrict the colors in the color field to those that have been previously selected in the color field of the same product. In other words, I want the color field to show only colors associated with the product’s color, not all colors available in the database. What I Need: I want the color field in the Product admin form to display only the colors that are linked to the color of that product. If no color is set, I want the color field to be empty or show no options. Current Behavior: When I click on the color field in the Product admin form, it redirects me to the Color model, and then if I click on the … -
Unable to SSH using Public IP Address During Deployment in CI/CD Pipeline
I am setting up a CI/CD pipeline for my project, and during the deployment stage, I need to SSH into my server using a public IP address. However, I'm encountering an issue where the SSH connection times out when using the public IP Here's my setup: Public IP: xx.xxx.xxx.xxx Local IP: 192.168.31.234 SSH port: 22 (both internally and externally) What I've tried: Local network access: SSH works perfectly with the local IP (192.168.31.234) using the command: ssh sourov@192.168.31.234 Port forwarding setup on my router: External port: 22 Internal IP address: 192.168.31.234 Internal port: 22 Firewall settings: UFW is configured to allow SSH (port 22) on both IPv4 and IPv6: bash 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) ssh sourov@xx.xxx.xxx.xxx Results in the error: ssh: connect to host 45.120.115.234 port 22: No route to host on: push: branches: - master pull_request: branches: - master jobs: test: runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v3 with: python-version: '3.12' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Run Django migrations run: python manage.py migrate working-directory : ./dining_manager - name : Run Django test … -
Django Admin: Limit ManyToManyField options based on previously selected ManyToManyField
I'm working on a Django project where I have two models, Product and Color. These two models are connected via ManyToManyFields. The relationship works fine, but I want to restrict the color options available when editing a product in the Django admin. My Models: from django.db import models from shortuuidfield import ShortUUIDField from colorfield.fields import ColorField from taggit.managers import TaggableManager class Color(models.Model): coid = ShortUUIDField(length=10, max_length=100, prefix="col", alphabet="abcdefgh") name = models.CharField(max_length=20) code = ColorField(default='#FF0000') product_varients = models.ManyToManyField('Product', related_name='color_variants', blank=True) image = models.ImageField(upload_to=color_directory_path, default="product.jpg") class Meta: verbose_name_plural = "colors" def __str__(self): return self.name class Product(models.Model): pid = ShortUUIDField(length=10, max_length=100, prefix="prd", alphabet="abcdef") title = models.CharField(max_length=100, default="Apple") main_product_color = models.ManyToManyField(Color, related_name='main_product', blank=True) color = models.ManyToManyField(Color, blank=True) price = models.DecimalField(max_digits=10, decimal_places=2, default=1.99) def __str__(self): return self.title Goal: Admin Behavior: When creating or editing a product, I want to restrict the colors in the color field to those that have been previously selected in the main_product_color field. In other words, I want the color field to show only colors associated with the product’s main_product_color, not all colors available in the database. What I Need: I want the color field in the Product admin form to display only the colors that are linked to the main_product_color … -
Why model instance is not being supplied to `ModelForm` inside a `DeleteView`
With Django 5.0.2, let's start with a simple model: from django.db import models class Book(models.Model): title = models.CharField(max_length=100) I want to do some form validation within ModelForm to determine whether or not the deletion should happen inside DeleteView. Simply put, I think the form is already capable of showing non-field errors and I want to avoid using messages.error() to sending back an error message. So I started with ModelForm: from django.forms import ModelForm class DeleteBookForm(ModelForm): class Meta: model = Book fields = [] def clean(self): super().clean() if not self.deletable(): self.add_error(None, 'This object can not be deleted') def deletable(self) -> bool: # do some evaluation on Book here book = self.instance if book.title == 'delete me please': return True else: return False and then the DeleteView: from django.views.generic import DeleteView from django.http import HttpResponseRedirect class DeleteBookView(DeleteView): model = Book form_class = DeleteBookForm def form_valid(self, form): self.object.delete() messages.success(self.request, 'The object has been deleted successfully.') return HttpResponseRedirect(self.get_success_url()) But self.instance appears to be None inside DeleteBookForm.deletable(). Indicating that the Book model instance is not being supplied/inserted to the ModelForm when it is being created. I believe this is not the case with UpdateView. Spent some time reading, I found this code on BaseDeleteView.post() (DeleteView's … -
django ORM query filter methods running multiple filter duplicates joins
I'm trying to run filters using methods in two separate attributes. In ICD10Filter: class Icd10Filter(filters.FilterSet): # New Filters for DOS Range dosFrom = filters.DateFilter(method='filter_by_dos_from', lookup_expr='gte') dosTo = filters.DateFilter(method='filter_by_dos_to', lookup_expr='lte') def filter_by_dos_from(self, queryset, name, value): return queryset.filter( base_icd__chart_review_dos__dos_from__gte=value ) def filter_by_dos_to(self, queryset, name, value): return queryset.filter( base_icd__chart_review_dos__dos_to__lte=value ) ICD10 filter is referenced in ChartReviewDx Model: class ChartReviewDx(models.Model): chart_review_dos = models.ForeignKey( ChartReviewDos, on_delete=models.SET_NULL, null=True, related_name="diagnosis_details" ) diagnosis_code = models.CharField(max_length=1024, null=True, blank=True) diagnosis_description = models.CharField(max_length=1024, null=True, blank=True) icd10 = models.ForeignKey("risk_adjustment.Icd10", on_delete=models.SET_NULL, null=True) base_icd = models.ForeignKey( "risk_adjustment.Icd10", on_delete=models.SET_NULL, null=True, blank=True, related_name="base_icd" ) and ChartReviewDx is referenced in ChartReviewDOS model: class ChartReviewDos(models.Model): chart = models.ForeignKey(Chart, on_delete=models.SET_NULL, null=True, blank=True, related_name="diagnosis") dos_from = models.DateField() dos_to = models.DateField() I want to fetch the ICD10 codes for particular DOS range only. The desired query is: SELECT distinct id, code, description FROM risk_adjustment_icd10 INNER JOIN healthcare_data_chart_review_dx ON ( id = healthcare_data_chart_review_dx.base_icd_id ) INNER JOIN healthcare_data_chart_review_dos ON ( healthcare_data_chart_review_dx.chart_review_dos_id = healthcare_data_chart_review_dos.id ) WHERE ( valid = 1 AND healthcare_data_chart_review_dos.dos_from >= '2023-08-19' AND healthcare_data_chart_review_dos.dos_to <= '2023-08-19' ) ORDER BY code ASC When I only run the filter for one of the fields, the query is working fine. But running filters on both fields give redundant JOINS and thus inaccurate results: The query … -
Django Celery with ALB on AWS persistent HTTP 502 Bad Gateway error
I can't figure out what's wrong in my setup. Frontend (HTTPS: 5173) docker container + django/celery (HTTPS: 8000, gunicorn) container on ec2. Both, 80 and 443 exposed. Loadbalancer with HTTPS:443 Listener, default target group to frontend, rule for /api/* path to Django https:8000. health check never works, no matter if http, https, path with trailing slash or without. self signed certificate works fine locally, worked fine just some days ago on aws imported for *.localhost/CN=localhost. expiry date > 100 days handshake test passes the logs from django/celery: [2024-10-18 09:33:25 +0000] [11] [WARNING] Invalid request from ip=172.31.xx.91: [SSL] PEM lib (_ssl.c:3900) [2024-10-18 09:33:41 +0000] [11] [WARNING] Invalid request from ip=172.31.xx.217: [SSL] PEM lib (_ssl.c:3900) [2024-10-18 09:33:43 +0000] [12] [WARNING] Invalid request from ip=172.31.xx.144: [SSL] PEM lib (_ssl.c:3900) [2024-10-18 09:33:49 +0000] [12] [WARNING] Invalid request from ip=172.31.33.xx: [SSL] PEM lib (_ssl.c:3900) [2024-10-18 09:33:55 +0000] [12] [WARNING] Invalid request from ip=172.31.xx.91: [SSL] PEM lib (_ssl.c:3900) parts from access logs ALB: ELB status code: 502 (Bad Gateway, indicating issues with the target or downstream services) SSL cipher and protocol: TLS_AES_128_GCM_SHA256 TLSv1.3 browser the same: index-BbUzq7eH.js:27 GET https://xxxxxxxxx.eu-central-1.elb.amazonaws.com/api/set-csrf/ 502 (Bad Gateway) Django ALLOWED_HOSTS is set to ["*"] for testing CORS_ALLOW_ALL_ORIGINS = True CORS_ALLOW_CREDENTIALS = True … -
Issues with Running Django Management Command as an Always On Task on PythonAnywhere
I built and deployed my Django website on PythonAnywhere. I have a script in my app/management/commands/my_command.py that I intend to keep always running. I tried using the PythonAnywhere Always On Task feature for this, but the status never changes from "starting" to "running". There is no problem with the script itself because when I run: bash (venv) $ source /home/myusername/.virtualenvs/myenv/bin/activate && cd /home/myusername/myproject && python manage.py my_command the script runs successfully, and then when I go to my Always On Task console, I see that it ran successfully and was recorded in that console. But the problem is that I don't want to always manually run it in my Bash console. I have followed the instructions on the PythonAnywhere help page, and I have changed my task command to all the options I can use. I tried: bash source virtualenvwrapper.sh && workon myenv && python /home/myusername/myproject/manage.py my_command But it never changes to "running." I also tried: bash /home/myusername/.virtualenvs/myenv/bin/python /home/myusername/myproject/manage.py my_command Again, it never changes to "running." However, if I run the script in the Bash console, the Always On task prints out my success message! What am I doing wrong? -
Django + Crispy form - Readonly field for specific usergroup/user without Javascript : possible?
I know how to set a field readonly using the helper, but I'd like to disable values changes for specific users. The only way I found consists in adding a condition in the the form taking in account the user.is_staf or user.is_superuser. Form call in views.py s_form = stock_inline_formset( instance=product, form_kwargs={'empty_sst': empty_sst, 'user_is_staff': user.is_staff}) Condition in forms.py class SstStockForm(forms.ModelForm): class Meta: model = SstStock fields = ('qty', 'warehouse', 'maxsst', 'adresse', 'pua', 'cau') def __init__(self, *args, **kwargs): self.empty_sst = kwargs.pop('empty_sst', None) self.user_is_staff = kwargs.pop('user_is_staff', None) super().__init__(*args, **kwargs) if not self.user_is_staff: self.fields['qty'].widget.attrs = {'readonly': 'readonly'} self.fields['pua'].widget.attrs = {'readonly': 'readonly'} self.fields['cau'].widget.attrs = {'readonly': 'readonly'} [...] Is it the better way ? Otherwise I could do it with JS using the same condition based on the user for setting the input field readonly. I didn't find any ressource talking about this. -
Filtering Related Colors in Django Admin Based on Product Selection
Problem Statement: I am working on a Django project where I have two models: Product and Color. The Product model has a many-to-many relationship with the Color model through a field called product_varients. My goal is to filter the available colors in the Django admin interface based on the selected product. Specifically, I want to ensure that when creating or editing a Color, the product_varients field only shows colors that are not already associated with that product Models: Here are the relevant parts of my models: from django.db import models from shortuuid.django.fields import ShortUUIDField class Color(models.Model): coid = ShortUUIDField(length=10, max_length=100, prefix="col", alphabet="abcdefgh") name = models.CharField(max_length=20) product_varients = models.ManyToManyField('Product', related_name='color_variants', blank=True) def __str__(self): return self.name class Product(models.Model): pid = ShortUUIDField(length=10, max_length=100, prefix="prd", alphabet="abcdef") title = models.CharField(max_length=100, default="Apple") color = models.ManyToManyField(Color, blank=True) def __str__(self): return self.title Current Implementation: In my admin.py, I have implemented a custom form for the Color model to filter the product_varients field. Here’s the relevant code: class ColorAdminForm(forms.ModelForm): class Meta: model = Color fields = '__all__' def __init__(self, *args, **kwargs): super(ColorAdminForm, self).__init__(*args, **kwargs) if self.instance.pk: # Editing an existing color self.fields['product_varients'].queryset = Product.objects.exclude( color=self.instance # Exclude products that already have this color ) else: # Creating a new …