Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
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 … -
Django IntegerField doesn't work as primary_key when CharField does for unmanaged model using custom DbManager
Working with Django5.0 updating a legacy oracle database with multiple DBs/Schemas. class OtherDbManager(models.Manager): def get_queryset(self): odb = "default" if hasattr(self.model, 'my_db'): odb = self.model.my_db return super().get_queryset().using(odb) class AAAModel(models.Model): class Meta: managed = False abstract = True objects = OtherDbManager() class BBBModel(AAAModel): class Meta(AAAModel.Meta): managed = False abstract = True my_db = 'bbb_db' class WackyObj(BBBModel): class Meta(BBBModel.Meta): managed = False db_table = '"%s"."%s"' % ("BBB_DB", "WACKY_OBJ") #myinteger = models.IntegerField(primary_key=True, null=False) #queryset operations fail if this is an integer field myinteger = models.CharField(primary_key=True, null=False) available_on = models.DateField() The underlying Oracle table "WACKY_OBJ" has filed MYINTEGER as NUMBER, NOT NULL. now if I do something like: target = WackyObj.objects.get(myinteger=8675309) I'll get my object back, but if I use an IntegerField instead (commented out in WackyObj class definition above): target = WackyObj.objects.get(myinteger=8675309) I'll get: wackymod.models.WackyObj.DoesNotExist: WackyObj matching query does not exist. Is this a bug? Also, in case it's relevant, i'm using a DatabaseRouter like so: from wackymod.models import AAAModel class XXXRouter: def db_for_read(self, model, **hints): if issubclass(model, AAAModel): return model.my_db return None def db_for_write(self, model, **hints): if issubclass(model, AAAModel): return model.my_db return None def allow_relation(self, obj1, obj2, **hints): return None def allow_migrate(self, db, app_label, model_name=None, **hints): return False As shown above, I've tried … -
Django login authentification with "allauth" and "dj_rest_auth" Unable to log in with provided credentials
I'm encountering an issue when trying to POST to http://127.0.0.1:8000/api/auth/login/. The error occurs when I include 'allauth' in my INSTALLED_APPS, but I need it for Google authentication. However, the login works correctly if I don't include 'allauth'. Any insights on how to resolve this would be greatly appreciated! this is the response by the api: { "non_field_errors": [ "Unable to log in with provided credentials." ] } this is the log from backend Bad Request: /api/auth/login/ [17/Oct/2024 09:56:13] "POST /api/auth/login/ HTTP/1.1" 400 68 The body of my request: { "email":"test@mail.com", "password":"******" } urls.py: from django.contrib import admin from django.urls import include, path, re_path from django.conf.urls.static import static from django.conf import settings from allauth.account.views import ConfirmEmailView from accounts.views import GoogleLogin, GoogleLoginCallback urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('app.urls')), path("api/auth/", include("dj_rest_auth.urls")), re_path( r"^api/auth/registration/account-confirm-email/(?P<key>[-:\w]+)/$", ConfirmEmailView.as_view(), name="account_confirm_email", ), path('api/auth/registration/', include('dj_rest_auth.registration.urls')), path("api/auth/google/", GoogleLogin.as_view(), name="google_login"), path( "api/auth/google/callback/", GoogleLoginCallback.as_view(), name="google_login_callback", ), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) Setting.py: AUTH_USER_MODEL = 'app.CustomUser' MEDIA_URL = '/document/' MEDIA_ROOT = BASE_DIR INSTALLED_APPS = [ 'jazzmin', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'corsheaders', 'rest_framework', 'rest_framework.authtoken', 'rest_framework_simplejwt', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.google', 'dj_rest_auth', 'dj_rest_auth.registration', 'app', ] SITE_ID = 1 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ) } SIMPLE_JWT = { "ACCESS_TOKEN_LIFETIME": timedelta(hours=1), … -
Django - access data in a model from a model with a foreign key
I have reduced code to display two models for simplicity. I am very new to Django and have been following the tutorial for the 2nd time but creating my own models. class Products(models.Model): product_name = models.CharField(max_length=50,unique=True,null=False) def __str__(self): return self.product_name class Current_tests(models.Model): product = models.ForeignKey(Products, on_delete=models.CASCADE) no_samples = models.IntegerField(default=0) stagecode=models.CharField(max_length=30,default="UPDATE REQUIRED") def __str__(self): return self.stagecode Where I have got a bit stuck is on how I access the data in my Products model using the foreign key in Current tests. For example I might want the product_name associated with a specific Current_test data row id or look product_name based on a stage code value. Equally, how do I get all stagecode for a given product_name. On the tutorial its done like this: q = Question.objects.get(pk=1) # Display any choices from the related object set -- none so far. >>> q.choice_set.all() <QuerySet []> https://docs.djangoproject.com/en/5.1/intro/tutorial02/ When I swap my classes in I get "AttributeError: 'Current_tests' object has no attribute 'product_name_set'. I have looked at many questions on here that suggest using "related name", "filter" but I have not been able to access data. Thanks -
Angular+Django how to access cookie under different domain
This is a follow up to my previous question (Angular+Django CSRF token not being saved as cookie) since I understand the underlying problem now. I have a Angular and Django setup and I am trying to get it to work with CSRF tokens. The way I have it set up is, Django includes a token in the response and it's saved as a cookie. Then my Angular interceptor gets the token from the cookie storage and includes it in the header of every subsequent request. This seems to be the only way that works and it works fine locally. The problem when I deploy the backend is that the returned cookie has a different domain (used to be localhost, now it's the name of the backend host). This means that the Angular cookie service isn't able to find it, so the requests have no CSRF token. I tried using HttpXsrfTokenExtractor instead, as proposed in https://www.stackhawk.com/blog/angular-csrf-protection-guide-examples-and-how-to-enable-it/. But that doesn't find the cookie either. I tried using the built-in Angular support for CSRF tokens (https://angular.dev/best-practices/security#httpclient-xsrf-csrf-security) but it doesn't include a token in any request regardless of the setup. Someone recommended reading the cookie manually from the backend response and then setting it … -
Starting a Django Web App as a Service using nginx and uWSGI fails
I have a simple web app that I am trying to run under Ubuntu 22.04 using Django, NGINX, and uWSGI. There is a service for my application which essentially starts uWSGI. If I start the service, uWSGI fails to start. If I run manually, it works perfectly. I can connect from a remote client and get the web page. So why am I having a problem running as a service? [uwsgi] chdir = /srv/dlnWebProject/dlnWebApplication module = dlnWebApplication.wsgi:application home = /srv/dlnWebProject/dlnWebApplication/.virtualenvs/dlnWebApplication master = true processes = 4 # Use HTTP socket http = 127.0.0.1:8000 # Or use a Unix socket with a full path die-on-term = true logto = /var/log/uwsgi/dlnWebApplication.log log-5xx = true log-4xx = true log-level = debug # Optional for more detailed logs Here is my service file: [Unit] Description=uWSGI instance to serve dlnWebApplication After=network.target [Service] User=www-data # Replace with the user that should run the service Group=www-data # Replace with the appropriate group WorkingDirectory=/srv/dlnWebProject/dlnWebApplication Environment="PATH=/srv/dlnWebProject/dlnWebApplication/.virtualenvs/dlnWebApplication/bin" ExecStart=/srv/dlnWebProject/dlnWebApplication/.virtualenvs/dlnWebApplication/bin/uwsgi --ini /srv/dlnWebProject/dlnWebApplication/uwsgi.ini --uid www-data --gid www-data [Install] WantedBy=multi-user.target This starts and runs uwsgi and allows remote clients to connect and responds with the web page: sudo -u www-data /srv/dlnWebProject/dlnWebApplication/.virtualenvs/dlnWebApplication/bin/uwsgi --ini /srv/dlnWebProject/dlnWebApplication/uwsgi.ini Starting as a Service gives: Oct 17 17:51:56 dlnServer systemd[1]: Started …