Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django Cart System - Delete from Cart
I am developing an e-commerce application using Django and HTML. Right now, I am working on deleting an item from my cart. views.py in Cart app: from django.shortcuts import render, get_object_or_404, redirect from .cart import Cart from SeniorProjectApp.models import MenuItem from django.http import JsonResponse def cart(request): cart = Cart(request) cart_items = cart.cart.values() name = cart.cart.values total_price = sum(float(item['price']) for item in cart_items) return render(request, "cart/cart.html", {'cart_items': cart_items, 'total_price': total_price, 'name': name}) def cart_add(request): cart = Cart(request) if request.POST.get('action') == 'post': item_id = int(request.POST.get('product_id')) item = get_object_or_404(MenuItem, id=item_id) cart.add(item=item) cart_quantity = cart.__len__() response_data = {'qty': cart_quantity} return JsonResponse(response_data) def cart_delete(request, item_id): cart = Cart(request) item = get_object_or_404(MenuItem, id=item_id) cart.remove(item) return JsonResponse({'message': 'Item removed successfully'}) cart.py in Cart app: class Cart(): def __init__(self, request): self.session = request.session cart = self.session.get('session_key') if 'session_key' not in request.session: cart = self.session['session_key'] = {} self.cart = cart def add(self, item): item_id = str(item.id) if item_id in self.cart: self.cart[item_id]['quantity'] += 1 else: self.cart[item_id] = { 'name': item.name, 'price': str(item.price), 'quantity': 1 } self.session.modified = True def delete(self, item): item_id = str(item.id) if item_id in str(item.id): self.cart[item_id]['quantity'] -= 1 if self.cart[item_id]['quantity'] == 0: del self.cart[item_id] self.save() def __len__(self): return len(self.cart) cart.html in Cart app: {% extends 'SeniorProjectApp/base.html' %} … -
Add DRM to images
I have a website, like a chat system where people discuss with other in private (1 to 1). And they can as well share pictures. It's a Django application. Right now the protection is that when you (user A) send an image to a user B, the image is encrypted with your key and with the key of user B creating 2 images then on frontend JS will decrypt the image to display it. That way if you download the image you will get the encrypted one and not be able to share it. (it's not perfect since you can decrypt it if you find how the key is generated by your front but for basic users it's enough) I saw that on most browsers, using DRM protection will avoid as well to make screenshots (the browser will stop you from doing that) But I can not find any documentation or tutorial on how to apply DRM to an image on a web based app. Does someone has an idea how to do it or where to find resources for that? Thanks a lot -
django-cors-headers doesn't let a GET-request bypass the CORS blockage
I have an app with Django backend (localhost:8000) and Vue.js frontend (localhost:5173). I'm trying to fetch data from the backend to the frontend via GET-request. However, all requests are being blocked by the CORS policy with an error: Access to XMLHttpRequest at 'http://127.0.0.1:8000' from origin 'http://localhost:5173' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. django-cors-headers module is installed and registered in settings.py: INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', ... ] CORS_ORIGIN_ALLOW_ALL = False CORS_ORIGIN_WHITELIST = ( 'http://localhost:8000', 'http://localhost:5173', ) I've made sure that 'corsheaders.middleware.CorsMiddleware' is the first on the MIDDLEWARE list as many answers to the similar questions suggest. I've also tried setting CORS_ORIGIN_ALLOW_ALL = True, but it made no difference. How do I configure the application settings so that the requests are allowed to go through? Thanks. -
Including self in the context
Is it advisable to include self in the context data that is being passed in the templates in django? def get_context_data(self, *args, **kwargs): return {'self': self} Does it have some security vulnerabilities or anything that may have a bad impact? Thank you. -
Hreflang conflicts and missing self-referencing hreflang issue in Django-based site
Issue 1: No self-referencing hreflang Description: Issue Type: No self-referencing hreflang. Page URLs: Page URL Current Hreflang Values: <link href="http://localhost:1300/en/catalogue/category/somecategory/for-kids_1532/" rel="canonical"/> <link href="http://localhost:1300/en/catalogue/category/somecategory/for-kids_1532/?sort_by=newest" hreflang="x-default" rel="alternate"/> <link href="http://localhost:1300/fi/catalogue/category/somecategory/for-kids_1532/?sort_by=newest" hreflang="fi-FI" rel="alternate"/> <link href="http://localhost:1300/sv/catalogue/category/somecategory/for-kids_1532/?sort_by=newest" hreflang="sv-SE" rel="alternate"/> <link href="http://localhost:1300/sv/catalogue/category/somecategory/for-kids_1532/?sort_by=newest" hreflang="sv-AX" rel="alternate"/> <link href="http://localhost:1300/en/catalogue/category/somecategory/for-kids_1532/?sort_by=newest" hreflang="en" rel="alternate"/> Assumptions: The absence of a self-referencing hreflang tag might be due to the link href containing parameters. Issue 2: Conflicting hreflang and rel=canonical Description: Issue Type: Conflicting hreflang and rel=canonical. Page URLs: Page URL Current Hreflang Values: <link href="http://localhost:1300/en/blog/1072/" rel="canonical"/> <link href="http://localhost:1300/en/blog/1072/" hreflang="x-default" rel="alternate"/> <link href="http://localhost:1300/fi/blog/1072/" hreflang="fi-FI" rel="alternate"/> <link href="http://localhost:1300/sv/blog/1072/" hreflang="sv-SE" rel="alternate"/> <link href="http://localhost:1300/sv/blog/1072/" hreflang="sv-AX" rel="alternate"/> <link href="http://localhost:1300/en/blog/1072/" hreflang="en" rel="alternate"/> Assumptions: Conflicting hreflang and rel=canonical issue might be due to the same URL marked as canonical and alternate. Additional Context: Code Snippets: base.html: {% with canonical_url=request.build_absolute_uri %} <link rel="canonical" href="{% canonical_url request %}" /> {% endwith %} {% for alt in ALTERNATES %} <link rel="alternate" href="{{ alt.href }}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" hreflang="{{ alt.hreflang }}" /> {% endfor %} context_processor.html: def i18n_alternates(request): """ Generate hreflang alternate URLs for internationalization. Example: If called with a request path '/en/blog/1072/', the function returns: {'ALTERNATES': [ {'hreflang': 'x-default', 'href': 'http://localhost:1300/en/blog/1072/'}, {'hreflang': 'fi-FI', 'href': 'http://localhost:1300/fi/blog/1072/'}, {'hreflang': 'sv-SE', 'href': 'http://localhost:1300/sv/blog/1072/'}, {'hreflang': 'sv-AX', … -
I want to change popover content after a click to show cart items. Debug the code
I want to change popover content after a click to show cart items. Debug the code. The popover is still saying title: "Your Cart" and content: "Hello". I don't know how to fix it. I am currently working on a django project and facing an issue with dynamically changing the content of a popover after a click event. The popover is meant to display the items in the user's shopping cart. {% load static %} <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Forsale</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script> <link rel="stylesheet" href={% static 'shop/style.css' %}> <script src="https://code.jquery.com/jquery-3.7.1.js" integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script> </head> body:- <body> <div class="container"> <div class="row"> <div class="col-md-12"> <nav class="navbar navbar-expand-lg bg-body-tertiary"> <div class="container-fluid"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Features</a> </li> <li class="nav-item"> <button id="cart-link" type="button" class="btn btn-secondary" data-bs-toggle="popover" data-bs-trigger="focus" data-bs-title="Dismissible popover" data-bs-content="It's very engaging. Right?"> Cart </button> </li> <li class="nav-item"> <a class="nav-link disabled" aria-disabled="true">Disabled</a> </li> </ul> </div> </div> </nav> </div> </div> <div class="row"> <div class="col-md-12"> <form class="card card-sm"> <div class="card-body row no-gytters align-items-center"> <div … -
Whay I can't get that image?
Good night. I want to display a picture from /media/images/ to store/ page but I get an error that the file is not found. Few times check out all files but nothing work. Where is may hide problem or where I can find solution? Console Output > python .\manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). November 19, 2023 - 04:16:07 Django version 4.2.7, using settings 'marketplace.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. [19/Nov/2023 04:16:10] "GET /store/ HTTP/1.1" 200 1282 Not Found: /media/images/Download-Icon.png [19/Nov/2023 04:16:11] "GET /media/images/Download-Icon.png HTTP/1.1" 404 2278 [19/Nov/2023 04:16:11] "GET /store/ HTTP/1.1" 200 1282 Not Found: /media/images/Download-Icon.png settings.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'store' ] Store/Models.py class Product(models.Model): title = models.CharField(max_length=64) description = models.TextField() images = models.ImageField(upload_to='images/') price = models.DecimalField(max_digits=7, decimal_places=2) # Max Value: 99,999.99 sold = models.BooleanField() def __str__(self): return self.title Store/Urls.py from django.conf import settings from django.conf.urls.static import static from django.urls import path from . import views urlpatterns = [ path('', views.store_catalog, name='store_catalog'), path('about', views.store_info, name='store_info') ] # In production, you would typically let your web server (like Nginx or … -
Debugging Django with VSCode. Error is Exception has occurred: ModuleNotFoundError
.venv is activated in the terminal that's running the debug. I'm running the debug from the volume.py file. In volume.py I'm using import core.backend.sql.subclasses.class1 as class1. That triggers the error when I'm debugging. Exact error is "ModuleNotFoundError: No module named 'core'". launch.json { "version": "0.2.0", "configurations": [ { "name": "Python: Django", "type": "python", "request": "launch", "program": "${workspaceFolder}/manage.py", "args": [ "runserver" ], "django": true, "justMyCode": true, } ] } Structure of files website/ ├── .venv ├── manage.py ├── website/ ├── core/ ├── backend/ | ├── sql/ | ├── subclasses/ | | ├── __init__.py | | ├── class1.py | | ├── volume.py | ├── __init__.py ├── __init__.py I'm expecting to debug, but I don't understand how imports work in python. I tried using relative imports, but then the error is 'import error attempted relative import with no known parent package'. I read that you could use sys to fix imports when debugging, but I don't want to add "sys" to every file that's importing class1.py. -
Django model with uuid5 primary key
I have a problem to define Django model where the Primary Key is UUID5 that base on model fields. Here is what I have got already. class Place(models.Model): uuid = models.UUIDField(primary_key=True, default=uuid.uuid5('PLACE_UUID_NAMESPACE', '{}{}{}'.format(self.city, self.zip, self.country))) city = models.CharField(max_length=24, blank=True, null=True) zip = models.CharField(max_length=6, blank=True, null=True) country = CountryField(default='US') The problem is with referring to model field as I did self.city, self.zip, self.country. Django does not accept the way I did. How can I define the uuid5 using model fields? I appreciate your help. -
Django - Lost connection to MySQL server during query
I have a very long await im my django rest framework project (up to 30 minutes) for a response from a websocket stream. I am waiting for a user reply in the websocket (chat). I then want to save a instance of a model class to the database. However I get an error "django.db.utils.OperationalError: (2013, 'Lost connection to MySQL server during query')" if the user in not responding with in minutes. I cant change the logic since I need to monitor the websocket connection where the user is replying. I tried to increase the connection duration by setting CONN_MAX_AGE: 1800 in my settings.py but it seems that this doesnt do the trick. Thanks -
How to resolve “The selected OTP device is not interactive” error while logging into Django administration?
enter image description here Here's the SS of my django login. I'm trying to implement OTP for a site I'm running locally. I have filled in my superuser credentials in here, but I'm facing issues in the OTP section. When I click on to select an OTP device, It doesn't show anything excpet for an empty field, if I click that empty field and proceed to click "Get OTP Challenge", I'm displayed "The selected OTP device is not interactive" text. I'm running it on my PC. What should I make interactive? Excuse me for I am a total noob in this work. This is part of a virtual experience program by JPMC. I'm expected to complete this step and access a QR Code present after this page. -
django orm optimize the query
I need query in django orm to clubs list endpoint. with clubs where user is the club owner, or user is Tournament Referee (with empty end_date, or the end_date is more recent than now). I have models: class User(AbstractBaseUser): id = models.UUIDField(default=uuid.uuid4, primary_key=True, max_length=128) ... class Club(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True, max_length=128) owner = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True) class Tournament(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True, max_length=128) club = models.ForeignKey(Club, on_delete=models.CASCADE) class TournamentReferee(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True, max_length=128) tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, related_name='tournament_referee') user = models.ForeignKey(User, on_delete=models.CASCADE) end_date = models.DateTimeField("access expire date", blank=True, null=True) I created my query like this, but maybe there is a better way to do it with a single query? def get_queryset(self): if self.request.method == 'GET': now = datetime.datetime.now() referee_clubs_list = TournamentReferee.objects.filter(Q(user=self.request.user), (Q(end_date__isnull=True) | Q(end_date__gte=now))).values_list('tournament__club_id') return Club.objects.filter(Q(owner=self.request.user) | Q(id__in=(referee_clubs_list))) return super().get_queryset() -
Why aren't my registered users showing on the Django admin panel?
I am relatively new to django. I am developing a user registration system. I have tried testing the user registration but the details aren't getting shown in the admin panel.I can manually add someone form the backend but when they use the form, and submit, it doesn't show in the admin panel for users and I don't get any errors. I have tried checking for the method in the form, I also tried changing the html method from "post" to "POST" but it didn't work and any errors in views or urls but can't seem to find where I am wrong. This is my views from django.shortcuts import render from userauths.forms import UserRegisterForm # Create your views here. def register(request): if request.method == "POST": form = UserRegisterForm(request.POST) if form.is_valid(): form.save() else: form = UserRegisterForm() context = { 'form':form, } return render(request, "userauths/register.html", context) This is my forms.py from django import forms from django.contrib.auth.forms import UserCreationForm from userauths.models import User class UserRegisterForm(UserCreationForm): class Meta: model = User fields = ['username', 'email'] Here is my html form <form method="POST"> {% csrf_token %} {{form.as_p}} <button type="submit">Register</button> </form> -
Django Rest Framework Serialiser Error -> Fields Not Found
I am fetching data from an api in my django backend and serializing the data to get the required fields and sending that to the frontend The seriliaser class EventSearchOutputSerialiser(Serializer): date_time = DateTimeField(source='dates.start.dateTime') icon = URLField(source='images.0.url', allow_null=True) event = CharField(source='name') genre = CharField(source='classifications.0.genre.name') venue = CharField(source='_embedded.venues.0.name') So basically here I am trying to pull out the data from the nested fields. An example of the fetched data which will be passed for serialisation. This data is fetched from ticketmaster api. [ { "name": "Utah Jazz vs. Phoenix Suns", "type": "event", "id": "Z7r9jZ1AdJ9uz", "test": false, "url": "https://www.ticketmaster.com/event/Z7r9jZ1AdJ9uz", "locale": "en-us", "images": [ { "ratio": "3_2", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_RETINA_PORTRAIT_3_2.jpg", "width": 640, "height": 427, "fallback": false }, { "ratio": "3_2", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_ARTIST_PAGE_3_2.jpg", "width": 305, "height": 203, "fallback": false }, { "ratio": "4_3", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_CUSTOM.jpg", "width": 305, "height": 225, "fallback": false }, { "ratio": "16_9", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_RETINA_PORTRAIT_16_9.jpg", "width": 640, "height": 360, "fallback": false }, { "ratio": "3_2", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_TABLET_LANDSCAPE_3_2.jpg", "width": 1024, "height": 683, "fallback": false }, { "ratio": "16_9", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_RECOMENDATION_16_9.jpg", "width": 100, "height": 56, "fallback": false }, { "ratio": "16_9", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_TABLET_LANDSCAPE_LARGE_16_9.jpg", "width": 2048, "height": 1152, "fallback": false }, { "ratio": "16_9", "url": "https://s1.ticketm.net/dam/a/a01/dc895acf-863e-4f90-9316-98302e99fa01_1761311_RETINA_LANDSCAPE_16_9.jpg", "width": 1136, "height": 639, "fallback": false }, { "ratio": "16_9", "url": … -
How can I submit several forms together in one time with JavaScript?
Hello (I am a Django developer),I want to submit some forms in html together in one time by JavaScript. when the button clicked, I want to submit all of them. Please guide me. Thank you. Submit some forms together in one time by JavaScript. -
HTMX & Django: Using HMTX across multiple Class Based Views
Desired Outcome: I am attempting to implement a UX flow with htmx and Django, where the user first selects a date, then a timeslot (determined based on the date), then a ticket (availability calculated based on date and time) and then inputs any special requests. Forms and elements are dynamically rendered without page refresh up to this point. User can then proceed to the next step (booking summary) which is on a different page. At each stage (i.e. each post in my view) I am saving important variables in the session. These are the variables posted via htmx and will be used later to create a model instance. Problem: When I get to the final view, the post request returns a blank page and the url does not change. It also seems like it is initiating the post request from my original view once again (since the selected date variable is printed again in console as None whereas prior to this, it is the date selected from the SelectDateForm). Context: The project is for an activity booking website. This flow is how the user books a particular activity. It works up until the final view in that flow (SpecialRequestsView), and … -
Django Auth Login Form Not Working - Clicking Button Not Attempt To Submit
Attempting to leverage the Django Authentication System. I cannot get the log in form to attempt a submission. 60 Second Video of Issue Its like the button is not being clicked I have added the django.contrib.auth.urls to the root URL Conf, added a created a template with a form to a registration/login.html in templates. I get the template and form to render, but the form fails to submit, like the button is not being clicked. Not a rejected login, but complete non-action. The other templates and forms associated with the django.contrib.auth.urls such as password_reset, are working as expected. {% extends "layouts/base-layout.html" %} {% load static %} {% block TITLE %}Login{% endblock TITLE %} {% block MAIN %} <!-- Sign In Start --> <div class="container-fluid"> <div class="row h-100 align-items-center justify-content-center" style="min-height: 100vh;"> <div class="col-12 col-sm-8 col-md-6 col-lg-5 col-xl-4"> <div class="bg-secondary rounded p-4 p-sm-5 my-4 mx-3"> <div class="d-flex align-items-center justify-content-between mb-3"> <h3 class="text-primary"><i class="fa fa-user-edit me-2" aria-hidden="true"></i> <span id="learnosity">Learnosity</span> Support<br/> Engineer Log-In</h3> </div> {% if form.errors %} <div class="message-container"> <div class="alert alert-danger d-flex align-items-center" role="alert"> <i class="fa-solid fa-circle-xmark"></i> <div> <p>Invaild Inputs</p> </div> </div> </div> {% endif %} {% if next %} <div class="alert alert-danger d-flex align-items-center" role="alert"> <i class="fa-solid fa-triangle-exclamation fa-xl"></i> <div> … -
Regarding filters in django
<div class="project-container"> <div class="project-header"> <div class="status-container"> <h1 class="project-header-text">{{ project_instance.projectTitle }}</h1> <select id="select1" name ="status" onchange="getOption()"> <option value="#">Search for status</option> <option value="Show all" selected>Show all</option> <option value="I">In progress</option> <option value="C">Completed</option> <option value="R">Submitted for Review</option> </select> </div> <div class="progress-create-btn"> <a href="./project_details.html"><button class="project-header-btn btns">View Project Details</button></a> <a href="./progress.html"><button class="project-header-btn btns">View Progress</button></a> <a href="{% url 'create-task' project_id=project_instance.projectID %}"><button class="project-header-btn btns">Create Task</button></a> <!-- <input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for Status.." title="Type in a name"> --> </div> </div> <div class="project-body"> <table class="main-table" id="maintable"> <thead> <th>Tasks</th> <th>Status</th> <th>View task</th> </thead> <tbody> {% for task in task_instance %} <tr class="table-row"> <td class="table-data">{{ task.taskTitle }}</td> <td class="table-data"> <h3 class="label-tag"> {% if task.status == 'I' %} Pending {% elif task.status == 'C' %} Completed {% elif task.status == 'R' %} Submitted for Review {% else %} Unknown {% endif %} </h3> </td> <td class="table-data"> <a href="{% url 'view-tasks' project_id=project_instance.projectID %}"> <button class="button-tag btns">View</button> </a> </td> </tr> {% empty %} <tr class="table-row"> <td class="table-data" colspan="4">No tasks to show</td> </tr> {% endfor %} </tbody> </table> </div> This is my html code function myFunction(filter) { var table, tr, td, i, txtValue; // input = document.getElementById("myInput"); // filter = input.value.toUpperCase(); filter=filter.toUpperCase(); if(filter=="SHOW ALL"){ filter=""; } table = document.querySelector(".main-table"); tr = table.getElementsByTagName("tr"); for (i = … -
create multiple objects in model serializer create method
I need the below DRF API View to list and create Withdraw records in my Django project. class WithdrawListCreateAPIView(PartnerAware, WithdrawQuerySetViewMixin, generics.ListCreateAPIView): permission_classes = (TokenMatchesOASRequirements,) required_alternate_scopes = { "GET": [[OTCScopes.WITHDRAW_READ]], "POST": [[OTCScopes.WITHDRAW_CREATE]], } def get_serializer_class(self, *args, **kwargs): if self.request.method == "POST": return WithdrawCreateSerializer return WithdrawSerializer def initial(self, request, *args, **kwargs): super().initial(request, *args, **kwargs) self.get_partner_info() def perform_create(self, serializer): serializer.save(partner=self.partner, created_by=self.request.user) My API construction must be for a single record, but it is possible that this amount may be greater than a specific amount called SETTLEMENT_MAX_AMOUNT, and I have to break it down to more than one Withdraw record and also I must create a separate record for each one, and I should return all these records that have been created in one list to the user.Here is the related serializer I've implemented for this case: class WithdrawCreateSerializer(serializers.ModelSerializer): target_uuid = serializers.UUIDField(write_only=True) def validate_target_uuid(self, value): partner = self.context["view"].partner try: target = WithdrawTarget.objects.get(active=True, uuid=value, partner=partner) except WithdrawTarget.DoesNotExist: raise serializers.ValidationError("Target does not exist for the current partner.") return target.uuid def create(self, validated_data): target_uuid = validated_data.pop("target_uuid") partner = self.context["view"].partner target = WithdrawTarget.objects.get(uuid=target_uuid, partner=partner) amount = validated_data["amount"] num_withdrawals = amount // SETTLEMENT_MAX_AMOUNT remaining_amount = amount % SETTLEMENT_MAX_AMOUNT withdrawals = [] for _ in range(num_withdrawals): withdraw_data = { "target": … -
Django admin panel redirects and URL issues: Incorrect paths in admin sites
I have a Django app for a REST API, and I also need to use the Django admin for some tasks. When I run the app locally and try to access the admin panel with the URL http://localhost:8000/admin, Django redirects me to http://localhost/localhost/admin. Also, when I try to access the login panel as http://localhost:8000/admin/login, I can see a valid login page. However, after clicking on 'Log In', a POST request is sent to http://localhost:8000/lo/admin/login/. I checked how HTML files are created for Django admin. I found a variable, app_path, that is passed to the template for creating the login page. The value for this variable is assigned in /usr/local/lib/python3.8/site-packages/django/contrib/admin/sites.py as app_path': request.get_full_path(). I created an endpoint to test the values returned from the get_full_path() function. When I call the endpoint http://localhost:8000/api/getadminurls, the value from get_full_path() is http/api/getadminurls. From all of this, I came to the conclusion that Django is not able to find the correct values that should be filled into those templates, but I was not able to find how to fix this. -
Tailwind css is not being served in Django App
I've been working on this Tailwind+Django project and it was working fine. Now it's not serving css. I've run the commanands py manage.py runserver and py manage.py tailwind start and there's no problem on servers. here is Settings.py STATIC_URL = '/static/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' AUTH_USER_MODEL = 'authen.CustomUser' TAILWIND_APP_NAME = 'theme' INTERNAL_IPS = [ "127.0.0.1", ] NPM_BIN_PATH = r"C:\Program Files\nodejs\npm.cmd" urls.py from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path("__reload__/", include("django_browser_reload.urls")), path('',include('authen.urls')), path('rental/',include('rental.urls')), path('roommate/',include('roommate.urls')), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) Tailwind.config.js module.exports = { content: [ '../templates/**/*.html', '../../templates/**/*.html', '../../**/templates/**/*.html', ], theme: { extend: {}, }, plugins: [ require('@tailwindcss/forms'), require('@tailwindcss/typography'), require('@tailwindcss/line-clamp'), require('@tailwindcss/aspect-ratio'), ], } here is the project structure Thanks for your time. if any further information is needed please ask. -
Get data from model in django with ajax
I have a django website which needs interaction through ajax. One of my pages includes a checkbox and I would like the data displayed on the client to depend on the state of my checkbox. Here is my view.py : ... def sales_view(request): dataModel = DataModel() return state_view(request, dataModel.m_bp.m_sales.m_name, sales_html) ... And my template sales_html.py (not a .html file as I use airium : from airium import Airium from contextlib import contextmanager from ..DataModel import DataModel @contextmanager def sales_html(a: Airium, dataModel: DataModel): # Page Heading with a.div(klass="d-sm-flex align-items-center justify-content-between mb-4"): a.h1(klass="h3 mb-0 text-gray-800", _t=dataModel.m_bp.m_sales.m_name) a.input(type = "checkbox", id = "yearMonthToggle", onclick = "myFunction()") a.script(src = "{% static 'src/js/test.js' %}", type = "text/javascript") # Get data from the model. myData = dataModel.getMyData() ... # Display the main ItemsGroups. a.div(klass="yearMonthContainer") ...code that will depend on user interactions... Note that I use airium rather than direct html + dtl to handle model dependent display (as I find it easier to handle all the data logic but this does not change much for my question. And for the javascript I have found this below, but I cannot find an easy way to call a django view from my script, the only think whih I … -
Django, Nginx, Gunicorn: 400 Bad Request when trying to access the AWS EC2 instance externally
I am encountering a "400 Bad Request" error when attempting to access my Django application externally on an AWS EC2 instance. Notably, the application functions correctly when accessed locally on the server. This issue arises when using Nginx as a reverse proxy and Gunicorn as the application server. For example when I'm on the ec2 instance and uses the command "curl --unix-socket /run/gunicorn.sock localhost/events/" I get the right data from the database. In the chrome console I can see this error: "The Cross-Origin-Openor-Policy header has been ignored, because the URL's origin was untrustworthy. It was defined either in the final response or a redirect. Please deliver the response using the HTTPS protocol. You can alos use the localhost origin instead." I have looked at the nginx logs and I don't get any information from that. I have tried many different solutions and looked and followed various tutorials and documentations, but it still won't work. I will add here some of the files that might be needed in figuring out this problem, and ask if you need more information, or can give me any direction of what I could try. tutorials I have looked at: https://www.youtube.com/watch?v=7O1H9kr1CsA https://medium.com/@madhankm/set-up-django-with-nginx-and-gunicorn-on-ubuntu-20-04-lts-8a02748435fe, settings.py (The important parts) … -
Django Docker Nginx can't load static files
I have a django project. I want to deploy it on AWS using Docker. Here is my services in docker-compose-prod.yml: ... api: image: meduzzen-backend-api container_name: django entrypoint: ./start_prod.sh tty: true stdin_open: true volumes: - .:/code - ./code:/apps - static:/code/static expose: - "8000" ports: - "8000:8000" depends_on: - postgres-db - redis env_file: - .env networks: - api-db-redis ... nginx: image: meduzzen-backend-nginx container_name: nginx volumes: - static:/static - ./nginx-conf.d:/etc/nginx/conf.d ports: - "80:80" depends_on: - api volumes: static: ... meduzzen-backend-api image was built from Dockerfile: FROM python:3.11.3-alpine ENV PYTHONBUFFERED=1 # Enable pytest-django ENV DJANGO_SETTINGS_MODULE=meduzzen_backend.settings WORKDIR /code COPY requirements.txt . RUN pip install -r requirements.txt --upgrade pip COPY . . # Copy start.sh script into project folder COPY start.sh . # Give access rights to start.sh RUN chmod +x start.sh RUN chmod +x start_prod.sh EXPOSE 8000 meduzzen-backend-nginx was built from Dockerfile: FROM nginx:1.25.3-alpine COPY ./default.conf /etc/nginx/conf.d/default.conf default.conf: upstream django { server api:8000; } server { listen 80; server_name localhost; location / { proxy_pass http://django; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; } location /static/ { alias /static/; add_header Access-Control-Allow-Origin *; } } start_prod.sh: #!/bin/sh python manage.py migrate python manage.py collectstatic --noinput gunicorn meduzzen_backend.wsgi:application --bind 0.0.0.0:8000 Pages are loaded but it can't load static … -
Django parameterized tests - Problems
I want to test my Django app. To avoid code clones, i want to usere paramerezided testes. I also want to use variables i initialized in the setUp(), to avoid hardcoding e.g. primary keys. But i did not find a fitting solution. Idea 1: Loop from django.test import TestCase from app.models import Example class TestClass(TestCase): @classmethod def setUp(self): self.param1 = Example.object.create(att="foo") self.param2 = Example.object.create(att="bar") def test_example(self): for testcase in testcases: self.assertEqual(param.att,"expected) Problem: Cant find failed tests without adding extra debug messages. Idea 2: parameterized library from django.test import TestCase from app.models import Example from parameterized import parameterized class TestClass(TestCase): param1 = None param2 = None def setUp(self): self.param1 = Example.object.create(att="foo") self.param2 = Example.object.create(att="bar") @parameterized.expand([ (param1,"foo"), (param2,"bar"), ]) def test_example(self,param, expected): self.assertEqual(param.att,"expected) Problem: param is still None in the test Idea 3: getattr from django.test import TestCase from app.models import Example from parameterized import parameterized class TestClass(TestCase): param1 = None param2 = None def setUp(self): self.param1 = Example.object.create(att="foo") self.param2 = Example.object.create(att="bar") @parameterized.expand([ ("param1","foo"), ("param2","bar"), ]) def test_example(self,param, expected): param = getattr(self, param) expected = getattr(self, expected) self.assertEqual(param.att,"expected) Problem: very slow