Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Docker file missing in volumn?
I now i using github and docker. inside the git repository include many docx and xlsx files in "app/media". When i push and pull docker image.i try to docker-compose exec -it web bash to access for inspect i see the files in 'app/media' is all missing and media folder in host is blank. How i can to solve this? version: '3.8' services: web: image: xxxx/myimage:latest command: gunicorn --workers=3 --threads=2 --worker-connections=3000 --timeout 300 project.wsgi:application --bind 0.0.0.0:8000 volumes: - ./static:/usr/src/app/static - ./media:/usr/src/app/media ports: - 8000:8000 env_file: - ./.env depends_on: - db db: image: postgres:13.0-alpine restart: always volumes: - ./database:/var/lib/postgresql/data/ environment: - POSTGRES_USER=${SQL_USER} - POSTGRES_PASSWORD=${SQL_PASSWORD} - POSTGRES_DB=${SQL_DATABASE} ports: - 5432:5432 nginx: image: nginx:1.13.0-alpine container_name: wrk-nginx restart: always ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf - ./static:/home/app/web/static - ./media:/home/app/web/media - ./certbot/conf/:/etc/nginx/ssl/:ro depends_on: - web certbot: image: certbot/certbot:latest volumes: - ./certbot/conf/:/etc/letsencrypt/:rw pgbackups: container_name: Backup image: prodrigestivill/postgres-backup-local restart: always volumes: - /home/myuser/database:/backups links: - db:db depends_on: - db environment: - POSTGRES_HOST=db - POSTGRES_DB=${SQL_DATABASE} - POSTGRES_USER=${SQL_USER} - POSTGRES_PASSWORD=${SQL_PASSWORD} - POSTGRES_EXTRA_OPTS=-Z9 --schema=public --blobs - SCHEDULE=@every 0h30m00s - BACKUP_KEEP_DAYS=7 - BACKUP_KEEP_WEEKS=4 - BACKUP_KEEP_MONTHS=6 - HEALTHCHECK_PORT=81 -
How can i make a long polling api with django rest framework
I have a django backend and i'm using django rest framework for my api's, my application is a grading system application that sees change in grades in real time, I don't want to make too many requests to get updates from my server whenever a data is being updated in my server, so i heard of long polling, I've done my research and I've still not gotten any proper guide to implement long polling with django, even in the django channels documentation, please i really need help for this. i tried using polling at first and i got the real time updates but it stresses the server with too many requests, till i heard long polling was a better practice. -
Why won't my image save to my media directory?
I'm using Django. My image is saving when my form is submitted, but it is not saving to my media directory. It is only saving the file. For example, it is saving as "file.png" but not "avatars/file.png". I will note that it is saving as expected from within the admin portal. Here are my files: from django.db import models from django.contrib.auth import get_user_model class Profile(models.Model): user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE) avatar = models.ImageField(default='avatars/Screenshot_2022-11-30_at_7.18.28_PM.png', upload_to='avatars/') header = models.FileField(default='headers/Screenshot_2022-11-30_at_7.18.28_PM.png', upload_to='headers/') followers = models.ManyToManyField(get_user_model(), related_name='followers', blank=True) from django.shortcuts import render, redirect, HttpResponseRedirect from django.contrib.auth import get_user_model from django.views.generic import ListView, DetailView, View from django.contrib.auth.mixins import LoginRequiredMixin from .models import Profile def updateProf(request): Profile.objects.filter(user_id=request.POST['user_id']).update(avatar=request.FILES['avatar']) return HttpResponseRedirect(request.META.get('HTTP_REFERER')) {% extends 'base.html' %} {% load crispy_forms_tags %} {% block content %} <div class="signup-form"> <h2>Edit profile</h2> <form method="post" action="/update-prof" enctype="multipart/form-data"> {% csrf_token %} <input type="hidden" name="user_id" value="2"> <input type="file" name="avatar"> <button class="btn btn-success" type="submit">Save changes</button> </form> </div> {% endblock %} And my settings/urls file: MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media' ] + static( settings.MEDIA_URL, document_root=settings.MEDIA_ROOT ) I thought that adding the enctype field/request.FILES would solve the issue, but it didn't. Anyone know how I can get the file to save to avatars/ ? -
Why isn't the number gotten from this random code generator function not being saved on the DB?
I am trying to generate a random redeem code for when a user purchases one of my products. The problem is that once the random code exists and the GetRandomRedeemCode function generates a new code, it won't get saved by Django in the DB. What could be the issue? This is the code that gets called whenever a new order is placed: def CompleteOrder(request): order_qs = Purchase.objects.filter(user=request.user, ordered=False) if order_qs: specific_order = order_qs[0] for order in specific_order.product_purchased.all(): order.item.purchased_by.add(request.user) specific_order.ordered = True specific_order.total_price = specific_order.get_total() *specific_order.redeem_code = GetRandomRedeemCode()* specific_order.save() return redirect("OrderCompletedSuccessURL") And this is the GetRandomRedeemCode() function that gets called to create a random code and to check if the random code is already in the DB, ie. uniqueness. def GetRandomRedeemCode(): random_num = str(random.randint(10000000,99999999)) if Purchase.objects.filter(redeem_code=random_num).exists(): GetRandomRedeemCode() else: return random_num -
Uncaught SyntaxError: Unexpected token '&' '
I have a django website where i want to include a js graph that plots prices against dates. I use (Plotly) https://plotly.com/javascript/ My problem is when i pass an array of dates (formatted 'yyyy/mm/dd') from my view in views.py into my html file which includes the code for my graph the dates have '&#x27 ;' either side of each date. views.py context = { "dates":['2022/12/03', '2022/12/04', '2022/12/05'], } return render(request, "App/minifig_page.html", context=context) inside html <script> ... var xArray = {{dates}}; ... </script> dates in browser view sources [&#x27 ;2022/12/03', &#x27 ;2022/12/04&#x27 ;, &#x27 ;2022/12/05&#x27 ;] This causes the dates to be improperly formatted and therefore the graph does not display. -
python collectstatic commad is not ran in Docker compose and gitlab
I am trying to run python manage.py collectstatic , in docker but nothing works, my python project misses some icons, and this command will solve the issue, but I can't know where to place the command, I have read several questions here but no luck. Below is my docker-compose.ci.stag.yml file: version: "3.7" services: web: build: context: . dockerfile: Dockerfile.staging cache_from: - guiostagingregisrty.azurecr.io/guio-tag:tag image: guiostagingregisrty.azurecr.io/guio-tag:tag expose: - 7000 env_file: .env Then my docker-compose.staging.yml file : version: '3.5' # sudo docker login -p <password> -u <username> services: api: container_name: api image: guiostagingregisrty.azurecr.io/guio-tag:tag ports: - 7000:7000 restart: unless-stopped env_file: - .env networks: - app-network watchtower: image: containrrr/watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock - /root/.docker/config.json:/config.json command: --interval 30 environment: - WATCHTOWER_CLEANUP=true networks: - app-network nginx-proxy: container_name: nginx-proxy image: jwilder/nginx-proxy:0.9 restart: always ports: - 443:443 - 90:90 volumes: - certs:/etc/nginx/certs - html:/usr/share/nginx/html - vhost:/etc/nginx/vhost.d - /var/run/docker.sock:/tmp/docker.sock:ro depends_on: - api networks: - app-network nginx-proxy-letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion env_file: - .env.prod.proxy-companion volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - certs:/etc/nginx/certs - html:/usr/share/nginx/html - vhost:/etc/nginx/vhost.d - acme:/etc/acme.sh depends_on: - nginx-proxy networks: - app-network networks: app-network: driver: bridge volumes: certs: html: vhost: acme: then my Docker.staging file : # ./django-docker/app/Dockerfile FROM python:3.7.5-buster # set work directory WORKDIR /opt/app # Add current directory code to working directory … -
Passing a variable into a filter Django Rest Framework
I'm using a filter in my Django Rest Framework project to search for items in a given date range. I would like to pass variables into a url like so: /?start_date=2022-12-01&end_date=2022-12-06 but I can't seem to figure out how to insert 'start_date' and 'end_date' as variables you can search. The filter works when I do queryset = Search.objects.filter(added_date__range=["2022-12-06", "2022-12-06"]) but I would like it to be something like: queryset = Search.objects.filter(added_date__range=[start_date, end_date]) Here is the model: class Search(models.Model): added_date = models.CharField(max_length=256) added_time = models.CharField(max_length=256) id = models.BigIntegerField() name = models.CharField(max_length=256) View: class SearchViewSet(generics.GenericAPIView): def get_queryset(self): try: Search.objects.filter(added_date__range=[self.start_date, self.end_date]) except Exception as exception: return Response(response500('No Data Found', exception), status=status.HTTP_500_INTERNAL_SERVER_ERROR) def get(self, request): self.start_date = request.GET['start_date'] self.end_date = request.GET['end_date'] try: queryset = self.get_queryset() search_data = SearchSerializer(queryset, many=True) resp = {'data': search_data.data} response = Response(resp) return response except Exception as exception: return Response(response500('No Data Found', exception), status=status.HTTP_500_INTERNAL_SERVER_ERROR) Url: re_path(r'search-summary', views.SearchViewSet.as_view(), name='search-summary') -
a live stream site using reactjs and drf
hello guys i'm working on a livestream site using reactjs and drf for server side. and apparaently i want to acheieve three things. when a particular song(div) is clicked on and currently playing, i add a "play" to the class list. now when the user clicked on another song i want to remove that play from the initial div(song) that was clicked on and add it to the current div that was click ASAP. secondly, when the song is been played i'm having a delay in response(like i'd have to click twice first click will fetch the song then the second click will then play it. how can i rectify it so when i click once everything fetches and plays asap. i have used the fetch function and applied a call back yet still having same issues. when i play a song it appears on all audio tags in all divs(music) i think that due to my usesstate setup and the way i am rendering it please how can i sought it so that each music(div) handles there own audio tag when played? Thanks const Home=()=>{ const audio=document.querySelector('#audio') const music_container=document.querySelector('#music_container') const [image, setImage]=useState('') const [posts, setPosts]=useState([]) const [icon,setIcon]=useState(faPlay) const[playing,setPlaying]=useState(false) const[music,setMusic]=useState('') … -
How change the url of an image within an html page in a django project?
I'm new to Django. I have 2 images, one for NP environment and one for Production environment. I have to make each image stay in its given environment. This is to be done in an html page within Django. This html page is the body of an email. can you help me? The image looks like below. And I want to control her link according to the environment she is in <td bgcolor="#fff" align="right" style="padding: 21px 19px 18px"> <img alt="Teste" src="https://.../mail/logo.png" width="210px" /> </td> -
Django Viewset method accepts get request while it's actually a post
I defined my urlpattern as follows: urlpatterns = [ ... path('api/cluster/<int:cluster_id>/topic/save', TopicView.as_view({'post': 'save_topic'}), name='save_topic'), ... and here's my view: class TopicView(viewsets.ViewSet): permission_classes = (IsAuthenticated, IsAdminUser, ) authentication_classes = (JWTAuthentication, ) def save_topic(self, request, cluster_id): # saves specific data I can access this method via GET, but POST is not allowed. My CORS settings is as follows: CORS_ORIGIN_ALLOW_ALL=True I tried: @action(methods=['post'], detail=False) def save_topic(self, request, cluster_id): Nothing changed. What am I missing? -
Can I install Python, Django and other packages on a USB device and and run a server from this USB?
I would like to have a Django server on a Windows machine which is not connected to Internet. For that, would it be possible to install, from another Windows machine connected to Internet, Python, PyCharm, Django and other packages to a USB device that I will then connect to the other Windows machine in order to start the application ? Would it work without problems ? Thanks ! - -
django translation doesn't work although dgango_language cookie is set
It's been 3 days and I'm getting tired of this. Here's my setting file: from pathlib import Path from django.utils.translation import gettext_lazy as _ # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = "django-insecure-z$__b9aa(_3!czi7ssop9cr2lae^9)f^!_kq+y_n=+6u=ul!%q" # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "mainapp", ] MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", 'django.middleware.locale.LocaleMiddleware', "django.middleware.clickjacking.XFrameOptionsMiddleware", ] ROOT_URLCONF = "soroushprojects.urls" TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": ['templates'], "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", 'django.template.context_processors.i18n', ], }, }, ] WSGI_APPLICATION = "soroushprojects.wsgi.application" # Database # https://docs.djangoproject.com/en/4.1/ref/settings/#databases DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "db.sqlite3", } } # Password validation # https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",}, {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",}, {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",}, ] # Internationalization # https://docs.djangoproject.com/en/4.1/topics/i18n/ LANGUAGE_CODE = "en" TIME_ZONE = "UTC" USE_I18N = True USE_TZ = True LAGUAGES = ( ('en', _('English')), ('fa', _('Persian')), ) LOCALE_PTHS = [ BASE_DIR / … -
Why this DeleteView doesn't actually delete the entry in Django?
In my Django app the delete view doesn't work. When I click on an entry the page just refreshes and nothing happens. The entry is not deleted from the database. Creating and updating entries works fine. Is there something wrong with any of the files? microtarjetas/views.py: class DeleteCardView(DeleteView): model = Card template_name = 'microtarjetas/delete_card.html' form_class = CardForm success_url = '/cards/' templates/microtarjetas/delete_card.html: {% extends 'base.html' %} {% load static %} {% block content %} <h2>Delete card</h2> <p>Are you sure you want to delete "{{ object }}"?</p> <form method="post">{% csrf_token %} <input type="submit" value="Confirm" /> </form> {% endblock %} a snippet from templates/microtarjetas/cards.html: <tbody> {% for card in cards %} <tr> <td>{{ card.word_en }}</td> <td>{{ card.word_es }}</td> <td><a href="{% url 'update_card' card.pk %}">update</a></td> <td><a href="{% url 'delete_card' card.pk %}">X</a></td> </tr> {% endfor %} </tbody> forms.py: from django import forms from .models import Card class CardForm(forms.ModelForm): class Meta: model = Card fields = "__all__" models.py: class Card(models.Model): word_en = models.CharField(max_length = 30) word_es = models.CharField(max_length = 30) def get_absolute_url(self): return "/cards" def __str__(self): return f"{self.word_en} --- {self.word_es}" urls.py: from django.urls import path from . import views urlpatterns = [ path('', views.HomeView.as_view(), name='home'), path('cards/', views.CardsView.as_view(), name='cards'), path('cards/new', views.CreateCardView.as_view(), name='create_card'), path('cards/<pk>/delete/', views.DeleteCardView.as_view(), name='delete_card'), path('cards/<pk>/update/', views.UpdateCardView.as_view(), … -
nginx 502 bad gateway error with Django webapp hosted on AWS EC2
Ever since rebooting my Ubuntu EC2 instance, I have an issue with nginx giving a 502 error for my site. I didn't change any settings before the reboot and the site was working fine before then. Error from /var/log/nginx/error.log: 2022/12/06 21:10:54 [error] 1503#1503: *4 connect() failed (111: Unknown error) while connecting to upstream, client: ###.##.##.###, server: ##.#.###.###, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8000/favicon.ico", host: "##.#.###.###", referrer: "http://##.#.###.###/" Here is my config in /etc/nginx/sites-available/: server_tokens off; access_log /var/log/nginx/esms.access.log; error_log /var/log/nginx/esms.error.log; # This configuration will be changed to redirect to HTTPS later server { server_name .##.#.###.###; listen 80; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; } location /static { autoindex on; alias /home/ubuntu/ESMS/esms/static/; } } And the output of netstat -plnt: sudo netstat -plnt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 664/sshd: /usr/sbin tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1567/nginx: master tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 420/systemd-resolve tcp6 0 0 :::22 :::* LISTEN 664/sshd: /usr/sbin tcp6 0 0 :::80 :::* LISTEN 1567/nginx: master -
Nginx 400 Error - client sent plain HTTP request to HTTPS port while reading client request headers
I recently added a SSL certificate to my website using Let's Encrypt and have noticed that when I try to access my website using either HTTP or HTTPS, the site will load correctly most of the time, but sometimes it will return a 400: Bad Request error. Refreshing the page after that will usually return me to the working HTTPS site, but I am having trouble understanding why this error only occurs sometimes. The current site is using Django, Gunicorn, Nginx, and AWS EC2 with a load balancer and the SSL certificate is for the EC2 instance, if this makes a difference. nginx.conf user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log info; ## # Gzip Settings ## gzip on; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } sites-enabled .conf file server { listen 80; server_name … -
How to retrieve attributes from a foreign key related model to another foreign key related model?
I'm using django 4.1.2 with python 3.10.8. I have three models one for user management, one for questions and another for answers. They are described below: class User(AbstractUser): phone_number = models.CharField(max_length=14, unique=True) first_name = models.CharField(max_length=40) father_name = models.CharField(max_length=40) email = models.EmailField(unique=True, required=True) age = models.CharField(max_length=3) username = models.CharField(max_length=8, required=True) class Question(models.Model): question = models.CharField( max_length=500, null=False, unique=True ) creating_staff = models.ForeignKey( User, null=False, on_delete=models.PROTECT, to_field="phone_number", ) options = models.JSONField(null=False) correct_option = models.CharField(max_length=250, null=False) question_ts = models.DateTimeField(auto_now_add=True, null=False) class Meta: verbose_name = "Question" def __str__(self) -> str: return f"{self.question}" class Answer(models.Model): answer = models.CharField(max_length=500, null=False) question_answered = models.ForeignKey( Question, null=False, on_delete=models.PROTECT, related_name="question_answered" ) answering_user = models.ForeignKey( User, null=False, on_delete=models.PROTECT, to_field="phone_number", related_name="answerer" ) status = models.BooleanField(null=False) answer_ts = models.DateTimeField(auto_now_add=True, null=False) class Meta: verbose_name = "Answer" def __str__(self) -> str: return f"{self.answer} -- {self.answering_user}" This is the urls.py file: from django.urls import path from commons.views import (AnswerView) app_name = "commons" urlpatterns = [ path("play/", AnswerView.as_view(), name="play"), ] What I'm trying to do is whenever a user has logged in a wants to answer a set of questions by going to /commons/play/, on the GET request I want to parse out all the previous questions that user has answered and always display new questions. … -
Convert a query to geojson
I need help with this error that I am being presented with and it is the following. I have a database that when I perform the query has a list of points throughout the city, these points are in latitude and longitude format separately, now I need to pass them to geodjango and I need to serialize the data to convert it into geojson but I can't find the way to find the solution, I have the data like this from the database: {'type': 'Feature', 'properties': {'name': 'Centro Puerto Lopez', 'direction': 'Calle 5 # 7-28', 'latitude': '4.08467', 'longitude': '-72.9558', 'city': 'Puerto Lopez', 'department': 'Meta', 'pk': '97'}, 'geometry': None}, {'type': 'Feature', 'properties': {'name': 'Bachue Acacias', 'direction': 'Carrera 35 # 14-23', 'latitude': '3.98454', 'longitude': '-73.777', 'city': 'Acacias', 'department': 'Meta', 'pk': '98'}, 'geometry': None}, {'type': 'Feature', 'properties': {'name': 'Ciudad Porfia', 'direction': 'Carrera 43 # 67-04 Sur', 'latitude': '4.07094', 'longitude': '-73.6695', 'city': 'Villavicencio', 'department': 'Meta', 'pk': '99'}, 'geometry': None}, {'type': 'Feature', 'properties': {'name': 'Ciudad Milenio', 'direction': 'Calle 53 S # 33 - 02', 'latitude': '4.08341', 'longitude': '-73.6645', 'city': 'Villavicencio', 'department': 'Meta', 'pk': '100'}, 'geometry': None}]} The data is displayed, I am trying to serialize it like this: from django.http import JsonResponse from django.contrib.auth.decorators import … -
Django tutorial problem: The current path, polls/, didn’t match any of these
I'm just getting started with Django, and I'm a touch rusty with web development, so this may be an easy one. I'm stepping through the Django Polls Tutorial from the official documentation and I encounter a problem nearly right away. I'm not having success accessing http://localhost:8000/polls/ . I receive the error... Page not found (404) Request Method: GET Request URL: http://localhost:8000/polls/ Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order: admin/ The current path, polls/, didn’t match any of these. Here is my relevant code... \mysite\polls\views.py from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.") \mysite\polls\urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] \mysite\urls.py from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ] \mysite\mysite\setting.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] ROOT_URLCONF = 'mysite.urls' Development server reads... Not Found: /polls/ [06/Dec/2022 15:02:01] "GET /polls/ HTTP/1.1" 404 2095 I have tried a hodgepodge of fixes that I've seen from other similar tutorial fixes, but nothing has worked and I feel like I'm taking stabs in the dark at this point. -
Django UpdateView set read only field by user permission
I have seen some posts like Making form fields - read only or disabled in DJANGO updateView use custom form on an UpdateView to make some fields as read only fields. However, the form object is not accessible for request.user object. If I want to make some fields read-only only for some user group, is there way to do it under UpdateView? -
Method "POST" not allowed for an api endpoint
I save topic data in a specific method of my viewset. I get following error: {detail: "Method "POST" not allowed."} end here's my view definition: class TopicView(viewsets.ViewSet): def save(self, request, cluster_id): # saves specific data ...and my urlpatterns: urlpatterns = [ ... path('api/cluster/<int:cluster_id>/topic/save', TopicView.as_view({'post': 'save'}), name='save_topic'), ... ] I don't understand, it's defined as post. What am I missing? Thanks. -
Redirecting to next url with additional parameters using LoginView
I have a detail page /spaces/<int:pk>/ where an unauthenticated user can enter form data. Upon submitting the form, this data is appended to the url like: /spaces/<int:pk>/?product_id=1&start_date=2022-12-23&duration=1 The user is then prompted to login or register to continue. Upon clicking login, the detail page url is appended as a next parameter to the login url. /login/?next=/spaces/1/?product_id=14&start_date=2022-12-23&duration=1 However, after logging in and redirecting back to the detail page, the url looks like: /spaces/1/?product_id=14 This is because the url is split with & when parsed, so the start_date and duration are considered as separate parameters. The only solution i can think of is to override LoginView.get_redirect_url and append each parameter from self.request.GET separately, but I'm not sure that is the best approach here. My goal is to preserve the initial input data so that the user does not have to input it again after logging in and landing back on the space detail page. For conversion reasons, I do not want to force the user to login before entering the initial form data. -
How to restrict media files of django project via nginx without dedicated server
I am running a Django project in a docker container. Uwsgi is my chosen protocol. Nginx is acting as a reverse proxy. I am able to restrict django sites for users based user.is_authenticated(). I am not able to restrict media and static files for not authenticated users as they get served directly from the filesystem. I do not have a second, dedicated server which only purpose is to identify and authenticate users. As I already have the functionality within my django project, I want to use this. My nginx configuration: events{} daemon off; http { access_log /dev/stdout; error_log /var/log/nginx/error.log; upstream django { server unix:///tmp/nginx/diplab.sock; } server { listen 8080; location = /accounts/check-authenticated { internal; uwsgi_pass django; proxy_pass_request_body off; proxy_set_header Content-Length ""; } location /static { alias /vol/web/static; include /etc/nginx/mime.types; } location /media { alias /vol/web/media; include /etc/nginx/mime.types; auth_request /accounts/check-authenticated; auth_request_set $auth_status $upstream_status; } location / { uwsgi_pass django; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; include /etc/nginx/uwsgi_params; } } } My Django Setup of the view which has the purpose to authenticate a user (200) or not (401). # urls.py app_name = 'accounts' urlpatterns = [ path('check-authenticated/', views.is_authenticated_view, name="check-authenticated"), path('login/', views.UserLoginView.as_view(), name='login'), path('logout/', auth_views.LogoutView.as_view(), name='logout'), … -
unable to deploy django project on railway
keep receiving 'stream did not contain valid UTF-8' at the building stage tried using the pipreq command to generate requirements.txt in place of pip freeze>, yet it made no difference -
Add subquery on annotate with the model field value from the same model in Django
I have a model as follows: class Job(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True) name = models.CharField(max_length=255) parent_job = models.UUIDField(default=uuid.uuid4) Now I need to get the name of the parent model in an annotate. I have tried the following but to no success: ( Job.objects.filter() .annotate( par_job_name=Subquery( Job.objects.filter(id=OuterRef("parent_job")).first().name ) ) .values("id", "par_job_name") ) ( Job.objects.filter() .annotate( par_job_name=Subquery( Job.objects.filter(id=F("parent_job")).first().name ) ) .values("id", "par_job_name") ) How can I get the par_job_name here? Note: I know that using a foreignkey to self might be a good way to model here but this is existing code and I have to work with this for now. So I have to implement the solution in th -
Can I remove existing fields or add some more fields in the default User DB in Django?, Also can i login using email instead of username?
I want to create a databasee for my project using default django database 'user' and i found that django have primary key username and some fields are not required, if i can add more fields to existing DB 'user' that would be great... i want to login using email instead of username and want to change some fields into required. Also can i add a field 'address'and 'mobile' ? Iam using Django 3.5.2 I have tried adding new fields using the following but still couldnt find a way to change primary key and required fields forms.py -> class CustomerUserForm(forms.ModelForm): class Meta: model=User #django default model fields=['first_name','last_name','password','email','username'] widgets = { 'password': forms.PasswordInput() } class CustomerForm(forms.ModelForm): class Meta: model= models.CRegistration fields=['address','mobile','profile_pic'] models.py -> class CRegistration(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, null=True) profile_pic = models.ImageField(upload_to='profile_pic/CustomerProfilePic/', null=True, blank=True) address = models.CharField(max_length=100) mobile = models.CharField(max_length=20) #null=True status = models.BooleanField(default=False)