Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Docker-based hosting unable to reach database
I am a junior developer using django as my first web development framework. During a boilerplate construction, I am not able to host and reach a postgres database using docker. The app content is available on repository https://github.com/trouchet/tarzan. The docker daemon outputs error django.db.utils.OperationalError: could not translate host name "db" to address: Temporary failure in name resolution after I run command docker-compose build followed by command docker-compose run. I use the variable DATABASE_HOST the same as docker service db. I also make sure, there is no other postgres service on current machine. Thanks in advance for any provided help. -
How to get specific values in Django UpdateView?
I have a generic UpdateView where the leaders can manage the settings of the users whom connected to the leaders's company. I like to have only that values in the select field where the company_id is equal to the the company_uuid in the url. Now the leader who want to set the team can access to all of the companies teams. Thank you in advance models.py class Company(models.Model): def __str__(self): return str(self.company_name) def generate_uuid(): return uuid.uuid4().hex company_name = models.SlugField(max_length=100) company_uuid = models.CharField(default=generate_uuid, editable=True, max_length=40) class Team(models.Model): def __str__(self): return str(self.team) team = models.CharField(max_length=200, blank=True, null=True) company = models.ForeignKey(Company, null=True, blank=True, on_delete=models.CASCADE) class Profile(models.Model): def __str__(self): return str(self.user) user = models.OneToOneField(User, null=True, on_delete=models.CASCADE) date = models.DateField(auto_now_add=True, auto_now=False, blank=True) company = models.ForeignKey('Company', on_delete=models.CASCADE, blank=True, null=True) team01 = models.ForeignKey('Team', on_delete=models.CASCADE, null=True, blank=True, related_name="eteam") views.py class UpdateProfileView(SuccessMessageMixin, UpdateView): model = Profile form_class = UpdateProfileForm template_name = 'users/management/update_profile.html' success_message = 'Változtatások mentve' def get_success_url(self): return self.request.META.get('HTTP_REFERER') urls.py ... path('management/update_profile/<pk>/<uuid>', login_required(UpdateProfileView.as_view()), name='UpdateProfile'), ... In the forms I don't using any widget. -
Problems when performing a query set of those leagues that have events filtered by a date timestamps
We have two models where we need to make a filter of those leagues that have games on a given date, this date is a timestamp example =: 1698292800 all this works fine, the problem is that when we get the results of this filter it brings events from other dates including the one that was filtered. Models FootballLeague model contains all soccer leagues. class FootballLeague(UUIDModel, TimeStampedModel): name = models.CharField(_("Name"), max_length=255, db_index=True) country_name = models.CharField( _("Country"), max_length=255, db_index=True, null=True, blank=True ) country_id = models.IntegerField(_("Country ID"), null=True, blank=True) def __str__(self): return self.name class Meta: verbose_name = _("Football League") verbose_name_plural = _("Football Leagues") ordering = ["name"] EventsFootball model contains all games related to a league. class EventsFootball(UUIDModel): event_id = models.CharField(max_length=255) start_time = models.IntegerField(null=True, blank=True) home_score_current = models.CharField(max_length=255, null=True, blank=True) home_score_part_1 = models.CharField(max_length=255, null=True, blank=True) home_score_part_2 = models.CharField(max_length=255, null=True, blank=True) home_images = models.JSONField(null=True, blank=True) away_score_current = models.CharField(max_length=255, null=True, blank=True) away_score_part_1 = models.CharField(max_length=255, null=True, blank=True) away_score_part_2 = models.CharField(max_length=255, null=True, blank=True) info_notice = models.CharField(max_length=255, null=True, blank=True) away_images = models.JSONField(null=True, blank=True) league = models.ForeignKey( FootballLeague, related_name="events", on_delete=models.CASCADE ) start_date = models.DateField(null=True, blank=True) def __str__(self): return f"{self.league.name} - {self.round}" The relationship or query performed so far where the games of the filtered date are brought here everything … -
Can we extend a template in multiple templates?
In Django while making templates, I created a master template where I used 3 template block tags and 2 different html files for extending (using extends template tag) and code for them. only one html code is added to master template, the other one is not added. Can we simultaneously extend a template in multiple templates? I was trying to make 2 files that extends a master template. but only one template's code is being added when I see in 'view source code'. -
NoReverseMatch at / Reverse for 'add_time_slot' with arguments '('',)' not found. 1 pattern(s) tried: ['add_time_slot/(?P<turf_id>[0-9]+)/\\Z']
I getting an error while doing python django project. The error: 'NoReverseMatch at / Reverse for 'add_time_slot' with arguments '('',)' not found. 1 pattern(s) tried: ['add_time_slot/(?P<turf_id>[0-9]+)/\Z']'. Several things i tried but nothing works please help me... view.py def add_time_slot(request, turf_id): turf = Venue.objects.get(pk=turf_id) if request.method == 'POST': form = TimeSlotForm(request.POST) if form.is_valid(): timeslot = form.save(commit=False) timeslot.turf = turf timeslot.save() return redirect('add_time_slot', turf_id=turf_id) else: form = TimeSlotForm() return render(request, 'add_time_slot.html', {'form': form, 'turf': turf}) url.py path('add_time_slot/int:turf_id/', views.add_time_slot, name='add_time_slot'), html Add Time Slots -
Switch to another subdomain in django on a click of a button
I am actually having issues with template link of a button to point to my subdomain which actually if I enter it manually on a browser, it works just fine. I need something like this {% load hosts %} <a href="{% host_url 'homepage' host 'www' %}">Home</a> But it doesn't work if i place the code above on a button. Am I missing anything?. Appreciate the help guys -
connect failed (111: Connection refused) reverse proxy using Nginx
I'm trying to revert ports to 8000 using docker, nginx and django but I get connection refused error. The docker build and compose works fine. Here is my nginx.conf file: worker_processes auto; events { worker_connections 4; } http { upstream backend { # web is the docker-compose.yml backend service server web:8000; } server { listen 80; server_name 127.0.0.1; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } and my docker-compose.yml file: services: db: image: postgres volumes: - ./data/db:/var/lib/postgresql/data environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres web: build: . command: python manage.py runserver 127.0.0.1:8000 volumes: - .:/code ports: - "8000:8000" environment: - POSTGRES_NAME=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres depends_on: - db nginx: image: nginx ports: - 80:80 volumes: - ./nginx/config/nginx.conf:/etc/nginx/nginx.conf depends_on: - web The error I'm getting: `2023/10/28 08:22:33 [error] 22#22: *1 connect() failed (111: Connection refused) while connecting to upstream, client: my_pc_ip, server: 127.0.0.1, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "127.0.0.1"` I tried changing the nginx.conf and .yml file but nothing changed -
Free online solutions for testing python frameworks on web
I'm looking for a free online solution to test python frameworks like django and flask. From what I have searched so far, I have not found any that do not involve additional expenses. -
Failed to lock Pipfile.lock
when I am trying to install mysqlclient on my Django project, I am facing this error. since I am a complete beginner on python-django, could someone help me out on solving this issue? ''' (demoproject) chandanm@Chandans-MacBook-Air demoproject % pipenv install mysqlserver Installing mysqlserver... Resolving mysqlserver... Added mysqlserver to Pipfile's [packages] ... ✔ Installation Succeeded Pipfile.lock (e35515) out of date, updating to (8070c0)... Locking [packages] dependencies... Building requirements... Resolving dependencies... ✘ Locking Failed! ⠹ Locking...False CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:Could not find a version that satisfies the requirement mysqlserver (from versions: none) [ResolutionFailure]: File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pipenv/resolver.py", line 645, in _main [ResolutionFailure]: resolve_packages( [ResolutionFailure]: File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pipenv/resolver.py", line 612, in resolve_packages [ResolutionFailure]: results, resolver = resolve( [ResolutionFailure]: ^^^^^^^^ [ResolutionFailure]: File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pipenv/resolver.py", line 592, in resolve [ResolutionFailure]: return resolve_deps( [ResolutionFailure]: ^^^^^^^^^^^^^ [ResolutionFailure]: File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pipenv/utils/resolver.py", line 908, in resolve_deps [ResolutionFailure]: results, hashes, internal_resolver = actually_resolve_deps( [ResolutionFailure]: ^^^^^^^^^^^^^^^^^^^^^^ [ResolutionFailure]: File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pipenv/utils/resolver.py", line 681, in actually_resolve_deps [ResolutionFailure]: resolver.resolve() [ResolutionFailure]: File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pipenv/utils/resolver.py", line 442, in resolve [ResolutionFailure]: raise ResolutionFailure(message=str(e)) [pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies. You can use $ pipenv run pip install <requirement_name> to bypass this mechanism, then run $ pipenv graph to inspect the versions actually installed in the virtualenv. Hint: … -
Getting error': 'Invalid date format. Please provide the date in the format dd/mm/yyyy' working perfectly on ubuntu but show this error on windows
' def subscription_detail(request): user = request.user if request.method == 'POST': try: data = json.loads(request.body) if data and 'subscriptionData' in data: subscription_data = data['subscriptionData'] if subscription_data: try: current_platform = sys.platform if current_platform == "win32" or current_platform == "cygwin": # Windows-based system print("Using Windows system format") print("Payment Date:", subscription_data['paymentDate']) payment_date = datetime.strptime(subscription_data['paymentDate'], '%d/%m/%Y').date() payment_time = datetime.strptime(subscription_data['paymentTime'], '%H:%M:%S').time() elif current_platform == "darwin": # macOS print("Using macOS system format") payment_date = datetime.strptime(subscription_data['paymentDate'], '%m/%d/%Y').date() payment_time = datetime.strptime(subscription_data['paymentTime'], '%H:%M:%S').time() elif current_platform =="linux": # Unix-based system print("Using Unix-based system format") payment_date = datetime.strptime(subscription_data['paymentDate'], '%m/%d/%Y').date() payment_time = datetime.strptime(subscription_data['paymentTime'], '%H:%M:%S').time() except ValueError as e: print("ValueError: ", e) return JsonResponse({'error': 'Invalid date format. Please provide the date in the format dd/mm/yyyy'}, status=400) exam_instance = Exams.objects.get(id=subscription_data['examName']) if subscription_data['subscriptionType'] == "monthlyRadio": expiry_date = payment_date + timedelta(days=30) elif subscription_data['subscriptionType'] == "quarterlyRadio": expiry_date = payment_date + timedelta(days=122) elif subscription_data['subscriptionType'] == "yearlyRadio": expiry_date = payment_date + timedelta(days=365) else: return JsonResponse({'error': 'Invalid subscription type'}, status=400) instances = Subscriptin_details.objects.create( amount=subscription_data['amount'], card_type=subscription_data['payment_method_details']['card']['funding'], payment_date=payment_date, payment_time=payment_time, subscription_type=subscription_data['subscriptionType'], user_name=user, expiry_date=expiry_date, exam_name=exam_instance, ) instances.save() return JsonResponse({'Success': 'Payment successful'}, status=200) else: return JsonResponse({'error': 'Subscription data not found'}, status=400) else: return JsonResponse({'error': 'SubscriptionData key not found'}, status=400) except Exception as e: return JsonResponse({'error': str(e)}, status=500) else: return JsonResponse({'error': 'Invalid request method'}, status=400) ' here … -
Django redirect error unexpected keyword while returning to previews view
I have searched and have not found any answers related to my specific problem. When I submit a form from my index view to an up_load view and try to have the up_load view redirect back to the index view while including the page number as an argument, I get an error, I have tried using a context dictionary and still nothing. url.py from django.urls import path from . import views app_name = 'myApp' urlpatterns = [ path("", views.index, name="index"), path("", views.index, kwargs={'cliente_id': None}, name="index"), path("<int:cliente_id>/", views.index, name="index"), path("<int:cliente_id>/<str:page>", views.index, name="index"), path('up_load/', views.up_load, name='up_load'), ] views.py def index(request, cliente_id=None): paginator = Paginator(client_list, 15) page_number = request.GET.get("page") page = paginator.get_page(page_number) context = {'cliente_id': cliente_id, 'page': page, 'paginator': paginator } return render(request, 'myApp/index.html', context) def up_load(request): if request.method == 'POST': form = ExpeditensForm(request.POST, request.FILES) cliente_id = request.POST.get('cliente_id', '/') page = request.POST.get('page', '/') if form.is_valid(): form.save() return redirect('myApp:index', cliente_id=cliente_id, page=page) else: pass Django returns the following error. Exception Type: TypeError at /Expedientes/4/1 Exception Value: index() got an unexpected keyword argument 'page' The browser shows the following URL: http://127.0.0.1:8000/Expedientes/4/1 When it should be: http://127.0.0.1:8000/Expedientes/4/?page=1 Thank you -
Django ManyToMany creations and cascading deletions
Django ManyToMany creations and cascading deletions Django newbie here. I have looked under several threads and I have not found anything related so I hope you can help me out on this. I am working on a ManyToMany model involving Doctors and Patients, that is, both can have multiple relationships between them. I have the following model definition: class Patient(models.Model): first_name = models.CharField(max_length=255) last_name = models.CharField(max_length=255) email = models.EmailField(unique=True) (other fields definitions) class Doctor(models.Model): first_name = models.CharField(max_length=255) last_name = models.CharField(max_length=255) email = models.EmailField(unique=True) (other fields definitions) … patients = models.ManyToManyField(Patient) The doctor is the main user that should be able to visualize all related patients (no problem there). When adding a new patient though, I would like to know how to create the relationship in the app_doctor_patients join table. I’ve read the documentation regarding the Related objects reference (https://docs.djangoproject.com/en/4.2/ref/models/relations/#django.db.models.fields.related.RelatedManager) but I do not know which is the best way to apply these functions. For starters, I visualized the following: def add_new_patient(request, doctor_id=None, curp=None): doctor = Doctor.objects.get(id=doctor_id) try: patient = Patient.objects.get(curp=curp) # Associates Patient 'patient' with Doctor 'doctor'. doctor.patients.add(patient) except Patient.DoesNotExist: # Creates a new patient object, saves it and puts it in the related object set. Returns the newly created … -
How can I create a views.py that allows a registered user to create, amend and delete a appointment?
I am developing a barber booking service using Django/Python. I want to create a view for an authenticated user to create a booking, amend and/or delete their booking. I am a student developer and this particular issue is not covered in the lessons and I am a little overwhelmed by it all, I have done many searches online but have not had any luck with finding anything I am able to work with. So far I have managed to create the models.py code but have hit a brick wall when it comes to creating the views.py, any help or advice is greatly appreciated! My current models.py file from django.db import models from datetime import datetime from django.contrib.auth.models import User SERVICE_CHOICES = ( ("Classic Cut", "Classic cut"), ("Cut & Beard", "Cut & Beard"), ("Skin Fade", "Skin Fade"), ("Skin & Beard", "Skin & Beard"), ("Buzz Cut", "Buzz Cut"), ) TIME_CHOICES = ( ("9 AM", "9 AM"), ("10 AM", "10 AM"), ("11 AM", "11 AM"), ("1 PM", "1 PM"), ("2 PM", "2 PM"), ("3 PM", "3 PM"), ("4 PM", "4 PM"), ("5 PM", "5 PM"), ) class Appointment(models.Model): user = models.ForeignKey( User, on_delete=models.CASCADE, null=True, blank=True) service = models.CharField( max_length=50, choices=SERVICE_CHOICES, default="Classic Cut") day … -
Weird error produced when quering sqlite databased using a model
I'm getting a very weird decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>] when trying to query a table in my Django application. I suspect it may be related to the virtual environment. This is the view. It is an endpoint that will receive some JSON data (at the moment I'm using Postman to send data to it). def handleRawMarketData(request): if request.method=='POST': data = json.loads(request.body) print(data) for item in data: new_data = rawMarketData(duration=item['duration'], is_buy_order=item['is_buy_order'], issued = item['issued'], location_id = item['location_id'], min_volume = item['min_volume'], order_id = item['order_id'], price = item['price'], range = item['range'], typeID = InvTypes.objects.get(typeID = item['type_id']), volume_remain = item['volume_remain'], volume_total = item['volume_total']) new_data.save() return JsonResponse({'message': 'Data saved successfully'}) return JsonResponse({'message': 'Failed'}) This is the data being sent in the body of the POST request by Postman: [{"duration":90,"is_buy_order":true,"issued":"2023-10-03T10:21:32Z","location_id":1038457641673,"min_volume":1,"order_id":6512967679,"price":17720000,"range":"region","type_id":19255,"volume_remain":2,"volume_total":3},{"duration":90,"is_buy_order":true,"issued":"2023-10-17T20:31:19Z","location_id":1038457641673,"min_volume":1,"order_id":6616121350,"price":500.2,"range":"station","type_id":24509,"volume_remain":198250,"volume_total":200000}] These are the two models being used. class InvTypes(models.Model): typeID = models.IntegerField(db_column='typeID', primary_key=True) groupid = models.IntegerField(db_column='groupID', blank=True, null=True) typename = models.CharField(db_column='typeName', blank=True, null=True, max_length=10000) description = models.TextField(blank=True, null=True) mass = models.IntegerField(blank=True, null=True) volume = models.IntegerField(blank=True, null=True) capacity = models.IntegerField(blank=True, null=True) portionsize = models.IntegerField(db_column='portionSize', blank=True, null=True) raceid = models.IntegerField(db_column='raceID', blank=True, null=True) baseprice = models.DecimalField(db_column='basePrice', max_digits=10, decimal_places=5, blank=True, null=True) published = models.BooleanField(blank=True, null=True) marketgroupid = models.IntegerField(db_column='marketGroupID', blank=True, null=True) iconid = models.IntegerField(db_column='iconID', blank=True, null=True) soundid = models.IntegerField(db_column='soundID', blank=True, null=True) graphicid … -
Authorize.net Unsettled Transaction List returning nothing, No error, No response
I have copy pasted this code from Authorize.net no errors are raised by this code, and the Authorize.net response is empty. There are no entries in the transaction list, and there are no errors either. Just empty response This my code:- def get_unsettled_transaction_list(location, limit=20, offset=1): """get unsettled transaction list""" locationAuth = AuthorizeDotNetServices._get_location_auth(location) # set sorting parameters sorting = apicontractsv1.TransactionListSorting() sorting.orderBy = apicontractsv1.TransactionListOrderFieldEnum.id sorting.orderDescending = True # set paging and offset parameters paging = apicontractsv1.Paging() # Paging limit can be up to 1000 for this request paging.limit = limit paging.offset = offset transactionrequest = apicontractsv1.getUnsettledTransactionListRequest() transactionrequest.merchantAuthentication = locationAuth transactionrequest.refId = "Sample" transactionrequest.sorting = sorting transactionrequest.paging = paging unsettledTransactionListController = getUnsettledTransactionListController(transactionrequest) unsettledTransactionListController.execute() # Work on the response response = unsettledTransactionListController.getresponse() -
Unable to log user in
This is my code: from rest_framework.decorators import api_view from rest_framework.response import Response from rest_framework import status from django.contrib.auth import authenticate, login @api_view(["POST"]) def user_login_api_view(request): username = request.data.get("username") password = request.data.get("password") user = authenticate(username=username, password=password) print(user, password, username) if user is not None: login(request, user) return Response(status=status.HTTP_200_OK) else: return Response(status=status.HTTP_401_UNAUTHORIZED) This is my request body for login: { "username": "testuser111@test.test", "password": "testpassword111" } Here's the print result: None testpassword111 testuser111@test.test I register a user like so: from django.contrib.auth.models import User from ..serializers import UserSerializer class UserCreateApiView(generics.CreateAPIView): def get_queryset(self): return User.objects.create_user(self.request.data) serializer_class = UserSerializer with this request body: { "username": "testuser111@test.test", "password": "testpassword111" } User serializer from rest_framework import serializers from django.contrib.auth.models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = "__all__" password = serializers.CharField(write_only=True) And in response I get 401. How do I log a user in properly? -
Django Rest Framework SimpleJWT - Removing a variable refrencing 'request.body' Causes 'RawPostDataException' Error
I have a Django 4.2.6 project using Python 3.10 and the rest_framework_simplejwt library. I've implemented a signin function, and it works fine when I include the line body = request.body, even though I'm not using body anywhere in the function. However, when I remove this line, it throws the following error: “RawPostDataException at /auth/signin/ - You cannot access the body after reading from the request's data stream.” I've tried to understand why this is happening, but I couldn't figure it out even after reading the docs. Can someone help me understand why this line is needed and if there's a cleaner or better way to write this function? Here's my code: @api_view(['POST']) def signin(request): body = request.body token_view = jwt_views.TokenObtainPairView.as_view() token_response = token_view(request._request) if token_response.status_code == status.HTTP_200_OK: data = request.data user = User.objects.filter(username=data['username']).first() data = { "access_token": str(token_response.data['access']), "refresh_token": str(token_response.data['refresh']), "user_access": { "is_staff": user.is_staff, "is_admin": user.is_superuser } } return Response(data, status=status.HTTP_200_OK) return token_response -
Is it dangerous that request.user is exposing user' s password?
I am new to DRF and django. I noticed that request.user.password is exposing logged in user password (hashed) and I thought that this might be dangerous. Can a third party have access to request? I create a serializer that exclude password. I tried to write a middleware for this and i have this message when a user log in : rest_framework.request.WrappedAttributeError: 'ReturnDict' object has no attribute 'is_active' Middleware.py from users.serializers import RequestUserSerializer def RemovePasswordFromUser(get_response): def middleware(request): if request.user.id is not None: request.user = RequestUserSerializer(request.user).data print(request.user) response = get_response(request) return response return middleware RequestUserSerializer.py class RequestUserSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() exclude = ["password"] Log In Class in views.py class LoginAPI(APIView): def post(self, request): username = request.data["username"] password = request.data["password"] user = authenticate(username=username, password=password) if user is None: return Response( status=status.HTTP_404_NOT_FOUND, data={"message": "Wrong Crendentials"} ) login(request, user) request.user = RequestUserSerializer(request.user).data print(type(request.user)) return Response( status=status.HTTP_200_OK, data={"message": "User Login"}, ) i tried to write a middleware for this. -
Django Upvote & Downvote help please
I am working on a project for my course that users can vote items either up or down. I'm using Django and have just begun learning it recently. I am having an issue to get past clicking and activating the buttons separately as my downvote button just activates the upvote. My template: <div class="row"> <div class="col-1"> <strong> {% if user.is_authenticated %} <form action="{% url 'post_vote' post.slug %}" class="d-inline" method="POST"> {% csrf_token %} {% if liked %} <button type="submit" name="blogpost_id" value="{{post.slug}}" id="btn-like" class="btn-like"><i class="fa-solid fa-circle-up" style="color: #1ea427;"></i></button> {% else %} <button type="submit" name="blogpost_id" value="{{post.slug}}" id="btn-like" class="btn-like"><i class="fa-regular fa-circle-up"></i></button> {% endif %} </form> {% else%} <span class="text-scondary"><i class="fa-regular fa-circle-up"></i></span> {% endif %} <span class="text-secondary">{{ post.number_of_up_votes}}</span> </strong> </div> <div class="col-1"> <strong> {% if user.is_authenticated %} <form action="{% url 'post_vote' post.slug %}" class="d-inline" method="POST"> {% csrf_token %} {% if disliked %} <button type="submit" name="blogdownpost_id" value="{{post.slug}}" id="btn-like" class="btn-like"><i class="fa-solid fa-circle-down" style="color: #ff0000;"></i></button> {% else %} <button type="submit" name="blogdownpost_id" value="{{post.slug}}" id="btn-like" class="btn-like"><i class="fa-regular fa-circle-down"></i></button> {% endif %} </form> {% else%} <span class="text-scondary"><i class="fa-regular fa-circle-down"></i></span> {% endif %} <span class="text-secondary">{{ post.number_of_down_votes}}</span> </strong> </div> <div class="col-1"> {% with comments.count as total_comments %} <strong class="text-secondary"><i class="far fa-comments"></i> <!-- Our total_comments variable goes before the closing strong tag --> {{ … -
HTTP_HOST Stripping via Firewalls and VPNs
I have an issue that's presenting as a CORS-related issue from a frontend (React) making API calls to a backend (Django). However, looking at the logs, I'm seeing things like this: django.core.exceptions.DisallowedHost: Invalid HTTP_HOST header: '123.456.789.101:8007'. You may need to add '123.456.789.101' to ALLOWED_HOSTS. The site works fine from my PC, several friends, and mobile devices, via my VPN, but fails to make API requests when behind certain firewalls (corporate) or via online VPN services that let one type in a website, visit it via an in-browser window (not naming names b/c that's beside the point here). What seems to be the issue is a security measure whereby the firewalls are stripping out the HTTP_HOST specified by the site and adding in the actual IP to avoid e.g. HTTP_HOST-based spoofing. Is there any way(s) to address this that doesn't involve assigning a static IP to my host and hard-coding that into the ALLOWED_HOSTS? For example, I like testing new apps on easy 1-click deploy type services like Digital Ocean, Railway, Netlify, etc. that are great but don't always provide the option for a static IP (not focusing on a specific service here). Am I stuck hoping my PaaS provider exposes … -
Having trouble with PUT request in React with Django backend: the Props can update State in DevTools but the State doesn't update the Props
I've probably made a stupid error I'm brand new at React; I'm building a POC for a class assignment and need to demonstrate a GET and PUT request in react on existing data in a django backend. The GET method works, and the API works. It's all very simple code, so I don't know where I went wrong: import React, { Component } from 'react' import './App.css'; import axios from 'axios' import Temperature from "./components/Temperature" import BootstrapSwitchButton from 'bootstrap-switch-button-react' class App extends Component { constructor(props) { super(props); this.state= { deviceEnabled: false, viewActivated: true, deviceList: [] }; } componentDidMount() { this.refreshList(); } refreshList = () => { axios .get("http://localhost:8000/api/devices/") .then(res => this.setState({ deviceList: res.data })) .catch(err => console.log(err)) }; handleSubmit = device => { if (device.id) { axios .put(`http://localhost:8000/api/tasks/${device.id}/`, device) .then(res => this.refreshList()) } axios .post("http://localhost:8000/api/devices/", device) .then(res => this.refreshList() ) } // Checks if device is activated or not displayActivated = status => { if (status) { return this.setState({ viewActivated: true }) } return this.setState({ viewActivated: false }) } displayEnabled = status => { if (status) { return !this.state.deviceEnabled; } return this.state.deviceEnabled; } // Renders activated and inactive devices under proper heading renderDeviceList = () => { return ( <div … -
index our of range in django template
I'm beginner in django and i'm trying to create a website and in its blog page there is a section that shows prev post and next post. I gave them the url of posts using a for loop that gives the id of posts from data base but in the first post it gives me the "index out of range" error here is the views.py and that section of blog template: views.py: def blog_single(request, pid): posts = get_object_or_404(Post, id=pid, status=1) ls = list(Post.objects.filter(status=1)) lis = [] for i in ls: lis.append(i.id) indpid = lis.index(pid) index_prev_post = indpid + 1 id_prev_post = lis[index_prev_post] index_next_post = indpid - 1 id_next_post = lis[index_next_post] name_prev_querry = Post.objects.filter(id=id_prev_post) name_prev_list = list(name_prev_querry) name_prev = name_prev_list[0].title name_next_querry = Post.objects.filter(id=id_next_post) name_next_list = list(name_next_querry) name_next = name_next_list[0].title context = {'post':posts, 'prev':id_prev_post, 'next':id_next_post, 'name_prev':name_prev, 'name_next':name_next} return render(request, 'blog/blog-single.html', context) template: </div> <div class="navigation-area"> <div class="row"> <div class="col-lg-6 col-md-6 col-12 nav-left flex-row d-flex justify-content-start align-items-center"> <div class="thumb"> <a href="#"><img class="img-fluid" src="{% static 'img/blog/prev.jpg' %}" alt="" /></a> </div> <div class="arrow"> <a href="#"><span class="lnr text-white lnr-arrow-left"></span></a> </div> <div class="detials"> <p>Prev Post</p> <a href="{% url 'blog:single' pid=prev %}"><h4>{{name_prev}}</h4></a> can you please tell me what's wrong with my code? I have tried changing the name_prev … -
Should I inherit from User model
I have two other models that should have all the functionalities that User model have. That's why in those two models, I am inheriting from User model. default_role = "admin" class User(AbstractBaseUser): ... image = models.ImageField(upload_to=user_directory_path, blank=True, null=True) role = models.CharField(max_length=20, choices=ROLE_CHOICE, default=default_role) .... class Student(User): ... some_fields_related_to_student ... def save(): self.role = "student" class Teacher(User): ... some_fields_related_to_teacher ... def save(): self.role = "teacher" def user_directory_path(instance, filename, role): extension = filename.split('.')[-1] return f"{role}/{instance.id}.{extension}" When I try to put the image pictures for Teacher and Student models, I want to put them in: ".../teachers/{teacher.id}.{extension}" ".../students/{student.id}.{extension}" these folders. How I can pass the role field to user_directory_path function? Also, my another question is that should I inherit from User at all? Whenever I create Student or Teacher it is also creating that model in User too, but for me it looks like not optimal, since we are kinda duplicating the information -
VSCode DJLint extension formats python files
My DJLint extension for VSCode recognizes problems in python files however it is not supposed to. It is supposed to run only in html files. DJLint error in python File Now my settings tell me that this extension is only running in the default file formats that do not include .py as seen here. What am I missing? -
Why aren't my serializer method fields being called?
I have the following django model: class HelpItem(TimeStampMixin): user = models.ForeignKey(User, related_name='help_items', on_delete=models.DO_NOTHING) description = models.TextField() support_choice = models.PositiveSmallIntegerField( choices=SubscriptionPlan.SUPPORT_CHOICES, default=SubscriptionPlan.EMAIL ) parent_entity = models.ForeignKey(ParentEntity, related_name='help_items', on_delete=models.DO_NOTHING, null=True) Im sending a post request to create a HelpItem through this view: class HelpItemView(CreateAPIView): permission_classes = (IsAuthenticated, ) serializer_class = HelpItemSerializer def post(self, request, *args, **kwargs): help_item = self.serializer_class(data=request.data, context={ 'user': request.user, 'selected_parent_entity': request.selected_parent_entity }) help_item.is_valid(raise_exception=True) help_item = help_item.save() return Response(self.serializer_class(help_item).data, status=status.HTTP_201_CREATED) And this is my serializer: class HelpItemSerializer(serializers.ModelSerializer): user = serializers.SerializerMethodField() parent_entity = serializers.SerializerMethodField() support_choice = serializers.SerializerMethodField() class Meta: model = HelpItem fields = ['description', 'support_choice', 'parent_entity', 'user'] def get_user(self, obj): return self.context['user'].id def get_parent_entity(self, obj): return get_parent_entity_for_configurations(obj.user, self.context['selected_parent_entity']) def get_support_choice(self, obj): try: return Subscription.objects.get(parent_entity=obj.parent_entity).subscription_plan.support except Subscription.DoesNotExist: print('No subscription exists.') Shouldn't the method fields be called before the serializer tries to save the HelpItem object? I get the following error: null value in column "user_id" of relation "smartsign_helpitem" violates not-null constraint DETAIL: Failing row contains (22, 2023-10-27 14:57:23.696476+00, 2023-10-27 14:57:23.696497+00, need help, null, null, 1). So basically the description is accessed but support choice sets to default value (1) and the user and parent entity columns are null. Why?