Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
How to make pagination with first page and last page Django
I have some code with template helpers bcs im using django-filter but it doesnt rly matter I want to make better pagination in my template with first and last page and with '...' when you`re going trough pagination How can i do this? template.html {% load templatehelpers %} {% if page_obj.has_other_pages %} <nav aria-label="paginator"> <ul class="pagination"> {% if page_obj.has_previous %} <li class="page-item "> <a class="page-link" href="{% relative_url page_obj.previous_page_number 'page' request.GET.urlencode %}"> <i class="bi bi-arrow-left"></i> </a> </li> {% else %} <li class="page-item disabled"> <a class="page-link"> <i class="bi bi-arrow-left"></i> </a> </li> {% endif %} {% for i in page_obj.paginator.page_range %} {% if page_obj.number == i %} <li class="page-item active" aria-current="page"> <a class="page-link" href="{% relative_url i 'page' request.GET.urlencode %}">{{ i }}</a> </li> {% elif i > page_obj.number|add:-3 and i < page_obj.number|add:3 %} <li class="page-item"> <a class="page-link" href="{% relative_url i 'page' request.GET.urlencode %}">{{ i }}</a> </li> {% endif %} {% endfor %} {% if page_obj.has_next %} <li class="page-item"> <a class="page-link" href="{% relative_url page_obj.next_page_number 'page' request.GET.urlencode %}"> <i class="bi bi-arrow-right"></i> </a> </li> {% else %} <li class="page-item disabled"> <a class="page-link" href="#"> <i class="bi bi-arrow-right"></i> </a> </li> {% endif %} </ul> </nav> {% endif %} -
Group by month and year but include 0 counts also
I have created a queryset which counts all the instances in a month and in a year. What I'd like it to do is also include the months that have 0 count. How do I do that even though there are no instances of the months in my database? payments_per_month = PaymentRequest.objects .annotate(year=Extract('arrival_date', 'year')).values('year') .annotate(month=Extract('arrival_date', 'month')).annotate(count=Count('*')) .values('year', 'month', 'count').order_by('-year', '-month', 'count') Output is: <QuerySet [{'year': 2023, 'month': 3, 'count': 8}, {'year': 2023, 'month': 2, 'count': 5}, {'year': 2023, 'month': 1, 'count': 18}, {'year': 2022, 'month': 11, 'count': 2}, {'year': 2022, 'month': 10, 'count': 1}, {'year': 2022, 'month': 8, 'count': 1}]> For example December(12) is missing but I'd like that to be in my queryset as: {'year': 2022, 'month': 12, 'count': 0} -
Docker, Django, Nginx: Admin cannot be reached HTTP 302
I am building a Django app in a docker enviroment. This app is served with nginx. I have made an app from scratch. Using docker-compose, I configured two services, the app and nginx. The default.conf is pretty simple. Like most tutorials, I passed in server the container name. I set the static the same from the STATIC_ROOT of the app. upstream api { server sinag_api:8000; } server { listen 80; location / { proxy_pass http://api; } location /static/ { alias /static/; } } In the settings, I did not modify much. I just added the STATIC_ROOT location. I also modified the allowed hosts. ALLOWED_HOSTS = ["*"] ... STATIC_URL = "/static/" STATIC_ROOT = "/static/" In my entrypoint for Django, I execute the collecstatic command. I can confirm the static files are generated since I inspected the volume. When I visit the localhost i.e. 127.0.0.1, I am welcomed by the Django debug web page. However when I visit the admin site 127.0.0.1/admin, the page cannot be reached. The log in nginx has HTTP 302. nginx | 192.168.144.1 - - [10/Mar/2023:10:44:25 +0000] "GET /admin/ HTTP/1.1" 302 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.63" "-" What … -
Iterate over Queryset backwards with Foreign Keys
I am trying to iterate over a queryset for a certain model and want to go over a table to another table. My models are the following (shrinked to a smaller version): class Erp(models.Model): erp_id = models.AutoField(primary_key=True) target_item = models.ForeignKey('Items', models.DO_NOTHING,related_name='target_item') class PE(models.Model): pe_id = models.AutoField(primary_key=True) item = models.ForeignKey(Items, models.DO_NOTHING, related_name='pe_item') class Items(models.Model): item_id = models.AutoField(primary_key=True) item_name = models.Charfield(max_length=20) My Queryset looks like this where I am trying to loop through and want to print stuff for the class Erp: pe_queryset = PE.objects.filter(item_id=2) for pe in pe_queryset: print(pe.item.item_name) # is working print(pe.item.target_item.erp_id) # is not working print(pe.item.target_item) # gives back Erp.None Is it possible to iterate through the entry to another tables Foreign Key like this or how could I accomplish to get the value from ERP with my Queryset? I tried to iterate through every possible column name. pe_queryset = PE.objects.filter(item_id=2) for pe in pe_queryset: print(pe.item.item_name) # is working print(pe.item.target_item.erp_id) # is not working print(pe.item.target_item) # gives back Erp.None -
How to query Django many-to-many relationship which has an intermediate model to handle the relationship?
It is probably a very simple question but I did not manage to figure it out so far. I have a many-to-many relationship in Django models like that: class Post(models.Model): ... class PostCategory(models.Model): ... class PostPagePostCategory(models.Model): """A connection class needed for other things to work. It is not possible to sily have the ParentalManyToMany field.""" post = ParentalKey( 'models.PostPage', on_delete=models.CASCADE, related_name='post_categories', ) post_category = models.ForeignKey( 'models.PostCategory', on_delete=models.CASCADE, related_name='posts', ) class Meta: unique_together = ('post_page', 'post_category') As mention in the class docstring, I cannot use simply ParentalManyToMany field due to other requirements. Now my question is how to perform the following query. Suppose I've selected some posts, e.g. posts = Post.objects.filter(...), and I want to select all the categories for only these posts. How to perform such a query? If I query categories = PostCategory.objects.filter(post__in=posts), I get the following error: ValueError: Cannot query 'posts': Must be "PostPagePostCategory" instance. If I query PostPagePostCategory.objects.filter(post__in=posts), I get obviously PostPagePostCategory queryset with PostPagePostCategory. How do I now get from PostPagePostCategory queryset for distinct PostCategory objects? -
Django PWA - Periodic Background Sync
I have a django application (not yet PWA) in which I got asked to implement a feature that makes the app upload the users location to an API. This is because the app is used for truck operators. The client wants to be able to follow where the truck is. To monitor if all scheduled deliveries can be succeeded that day. My question: Is it possible to somehow make a background task that, even when the user is not using the app (its closed or not focussed), sends its location to the API? What technologies should I be using for this? I have already looked into a lot of technologies (that for me are very new). Just as PWA (service workers), workers, periodic-background-sync-api, background-sync-api,... But I am getting lost in all the information that there exists. -
Cannot get metadata (current-total) from state/info of celery task after calling update_state
I am building a web application with Django. I need to display a progress bar. To track the progress inside a celery task I am passing an ajax call to the backend containing information needed for the process and another one with a timeout to keep watching for progress of the celery task. I can not understand what I am doing wrong, but I cannot get back the information regarding the information I stored in the 'meta' of the update_state. Following relevant part of code. tasks.py @shared_task def myFunction(): current_task.update_state(state='PROGRESS', meta={'current':0, 'total':100}) . do stuff . current_task.update_state(state='PROGRESS', meta={'current':25, 'total':100}) . do stuff . current_task.update_state(state='PROGRESS', meta={'current':50, 'total':100}) . do stuff . current_task.update_state(state='PROGRESS', meta={'current':75, 'total':100}) . do stuff . current_task.update_state(state='PROGRESS', meta={'current':100, 'total':100}) return result views.py def view(): ****GET PART**** if 'processing' in request.POST: result = myFunction.delay() request.session['id'] = result.id result_out = result.get() return JsonResponse() elif 'checkstate' in request.POST: proc_id = request.session['id'] task = AsyncResult(proc_id) return JsonResponse({'state':task.state, 'info':task.info}) -
How to get the text of a template without parsing the template?
Imagine I have a template that uses a custom template tag. During the processing of the template tag, I discover a problem I could help the user solve. I want to provide a pointer to where the error happened (and what they need to do to solve the problem). How do I get the template text and the current position (line) in the template file? (in a way that doesn't re-parse the template, since that would cause the error to be detected again recursively..) -
Filter queryset with same DateTime fields
I'm trying to filter a queryset with the same DateTime fields: objects = Obj.objects.filter(start_date_time=F('end_date_time')) objects <QuerySet []> models.py: start_date_time = models.DateTimeField(default=now, blank=True) end_date_time = models.DateTimeField(default=now, blank=True) If I remove microseconds, then the fields are equal: obj = Obj.objects.filter(id='id').first() obj.start_date_time datetime.datetime(2023, 3, 10, 9, 24, 29, 326238, tzinfo=<UTC>) obj.end_date_time datetime.datetime(2023, 3, 10, 9, 24, 29, 326241, tzinfo=<UTC>) obj.start_date_time == obj.end_date_time False obj.start_date_time.replace(microsecond=0) == obj.end_date_time.replace(microsecond=0) True How to make a request to the database correctly? -
How do i pass a QR value from javascript to my python view function in Django
I have created a QR scanner using html and javascript using instascan.min.js as shown in the code below. Currently, I am able to scan and see the content of the QR code displayed on the website but I am not sure how I can POST the QR code output {scan.content} . The QR value is passed into {scan.content} in the html. I want to post it to the python function: doctor_qrscan in view_doctor.py so that it can be written into the database Any help is greatly appreciated! The following are the relevant codes: {% block mainbody %} {% verbatim %} <div id="app2" class="container"> <head> <title>Instascan &ndash; Demo</title> <link rel="icon" type="image/png" href="favicon.png"> <!--<link rel="stylesheet" href="../static/css/style.css">--> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/webrtc-adapter/3.3.3/adapter.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js"></script> <script type="text/javascript" src="https://rawgit.com/schmich/instascan-builds/master/instascan.min.js"></script> </head> <body> <div id="app"> <div class="sidebar"> <section class="cameras"> <h2>Cameras</h2> <ul> <li v-if="cameras.length === 0" class="empty">No cameras found</li> <li v-for="camera in cameras"> <span v-if="camera.id == activeCameraId" :title="formatName(camera.name)" class="active">{{ formatName(camera.name) }}</span> <span v-if="camera.id != activeCameraId" :title="formatName(camera.name)"> <a @click.stop="selectCamera(camera)">{{ formatName(camera.name) }}</a> </span> </li> </ul> </section> <section class="scans"> <h2>Scans</h2> <ul v-if="scans.length === 0"> <li class="empty">No scans yet</li> </ul> <transition-group name="scans" tag="ul"> <li v-for="scan in scans" :key="scan.date" :title="scan.content">{{ scan.content }}</li> </transition-group> </section> </div> <div class="preview-container"> <video id="preview"></video> </div> </div> </body> </div> {% … -
Cannot connect to Django admin in Docker environment
I am building a Django app with Nginx in Docker. I have been able to visit the app in the localhost i.e. 127.0.0.1 however the admin page 127.0.0.1/admin is unreachable. I have this directory: . └── project/ ├── nginx/ │ ├── default.conf │ └── Dockerfile ├── sinag_api/ │ ├── sinag_api/ │ │ ├── ... │ │ └── settings.py │ ├── manage.py │ ├── Dockerfile │ └── entrypoint.sh ├── docker-compose.yml └── .development.env I only have a simple docker-compose file version: "3.9" services: sinag_api: container_name: sinag_api build: dockerfile: ./sinag_api/Dockerfile volumes: - static:/static ports: - "8000:8000" env_file: - .development.env nginx: container_name: nginx build: dockerfile: ./nginx/Dockerfile volumes: - static:/static ports: - "80:80" depends_on: - sinag_api volumes: static: My Django app is clean from scratch. I only added the STATIC_ROOT config to serve the static files. # settings.py STATIC_URL = "/static/" STATIC_ROOT = "/static/" Content of my nginx config is pretty basic. upstream api { server sinag_api:8000; } server { listen 80; location / { proxy_pass http://api; } location /static/ { alias /static/; } } My Django entrypoint is also just basic. #!/bin/sh python manage.py migrate --no-input python manage.py collectstatic --no-input gunicorn sinag_api.wsgi:application --bind 0.0.0.0:8000 How can I debug the pages in Docker? I have … -
Datatables server-side processing Django
I am trying to get datatables server-side processing to work with a Django backend. I have the following code: views.py to load HTML: def clients(request): path = '/path/to/csv/file.csv' date_time = os.path.getmtime(path) date = datetime.datetime.fromtimestamp(date_time) html_template = loader.get_template( 'XXXX/clients.html' ) return HttpResponse(html_template.render({"date":date,},request)) HTML table code: <table id="table" class="table table-striped"> <thead style="white-space: nowrap;"> <tr> <th>Network</th> <th>Description</th> <th>IP</th> <th>Mac</th> <th>Manufacturer</th> <th>Operating system</th> <th>Conntect to device</th> <th>VLAN</th> <th>Switchport</th> <th>Status</th> </tr> </thead> <tbody style="white-space: nowrap;"> </tbody> </table> Javascript in the same HTML file as the table code: <script> $( document ).ready(function() { $("#table").DataTable({ "processing": true, "serverSide": true, "scrollX":true, "ajax" :{url:'{% url "json_response" %}',dataSrc:"data"}, }); }); </script> views.py to get data from url 'json_response': def json_response(request): draw = int(request.GET.get('draw')) length = int(request.GET.get('length')) start = int(request.GET.get('start')) substring = str(request.GET.get('search[value]')) if start == 0: start == 0 else: length = start + length path = '/XX/XX/XXX/XXX.csv' clients = pd.read_csv(path) recordsTotal=len(clients) clients = clients.rename(columns={"Client description":"client_descr","Client IP":"client_ip","Client MAC":"client_mac","Client Manufacturer":"client_man","Client OS":"client_os","Connected to device":"connected_to",}) clients['VLAN'] = clients['VLAN'].fillna(0) clients['Switchport'] = clients['Switchport'].fillna(0) clients['client_man'] = clients['client_man'].fillna('Unknown') clients['client_os'] = clients['client_os'].fillna('Unknown') clients = clients.astype({"VLAN":int}) clients = clients.astype({"Switchport":str}) clients = clients.fillna('None') clients = clients.iloc[start:length] clients = clients.values.tolist() page = 1 per_page = 25 response = { "draw":draw, "recordsTotal": recordsTotal, "recordsFiltered":recordsTotal, "data":clients, } clients = JsonResponse(response,safe=False) return clients With … -
Django: Running inspectdb command produces ImportError: cannot import name 'NoArgsCommand'
What I am currently trying to achieve is to map the database that I have in sqlite3 to Django (version 4.1) models. I have tried using inspectdb but it keeps throwing ImportError: cannot import name 'NoArgsCommand' from 'django.core.management.base'. I first tried running the command below: python manage.py inspectdb --database \transactions\db.sqlite3 Which gave me the error: from django.core.management.base import NoArgsCommand, CommandError ImportError: cannot import name 'NoArgsCommand' from 'django.core.management.base' (C:\Users\E.Musonda\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py) I then moved my sqlite3 to my projects base directory and run the command below: python manage.py inspectdb > models.py Which still produced the same error. Django database configuration: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } Has anyone encountered this problem before and solved it? Or maybe I'm using the inspectdb command in a wrong way? Any help appreciated! -
how to save all python requests going out and set a proxy
how to save all API requests going out and then set a proxy in a Django or python project import requests proxies = { "https": "8.219.97.248:80" } url = "http://127.0.0.1:8000/api/product" r = requests.get(url, proxies=proxies) print(r.text) -
Django serialize custom user model
I have CustomUser model which inherits from AbstractUser clas. I have a serializer which throw me following errors: When I use from django.contrib.auth.models import User, the error is "AttributeError: 'NoneType' object has no attribute '_meta'". When I use from users.models import User, the error is "'QuerySet' object has no attribute 'email'", but the email field exists within the model. Here is what my serializer looks like: from rest_framework import serializers from users.models import User # from django.contrib.auth.models import User class DepartmentSerializer(serializers.ModelSerializer): class Meta: model = Department fields = ['id', 'title', 'is_active'] class CustomUserSerializer(serializers.ModelSerializer): department = DepartmentSerializer() class Meta: model = User fields = ['id', 'email', 'ad_login', 'sap', 'user_type', 'language', 'first_name', 'last_name', 'department'] In my settings I have also defined "AUTH_USER_MODEL = 'users.User'". Hoping this is enough information, what may be the cause of these errors? -
How to Insert in SQL using django app but getting COUNT field incorrect or syntax error
I want to insert data from django to sql but getting error : ('07002', '[07002] [Microsoft][ODBC SQL Server Driver]COUNT field incorrect or syntax error (0) (SQLExecDirectW)') My code is below: for connection: def connsql(): server = '' database = '' username = '' password = '' conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) return conn for storing data in db: connectionString=self.connsql() saveDetails=ModelClass() todayDate=date.today() saveDetails.Date=todayDate.strftime('%m/%d/%Y') saveDetails.Questions=question saveDetails.Result=str(result) cursor=connectionString.cursor() cursor.execute("insert into [dbo].[testtable] (Date,Questions,Result) values ("+saveDetails.Date+"','"+saveDetails.Questions+"','"+saveDetails.Result+");") cursor.commit() As I'm new to this any help will be thankfull. -
How Make each app use diffrent database(postgresql)?
My project have 3 apps(accounts:sqlite, books:postgresql, publishers:postgresql), And I want each app use its own db but I don't know how :( I installed pgAdmin and created table and databases but I can't connect it correctly to django! This is my setting Databse part: DATABASES = { 'default': {}, 'accounts': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'users.sqlite3', }, 'books_db': { 'NAME': 'book_data', 'ENGINE': 'django.db.backends.postgresql', 'USER': 'postgres', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '5432', }, 'publishers_db': { 'NAME': 'publisher_data', 'ENGINE': 'django.db.backends.postgresql', 'USER': 'postgres', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '5432', } } -
Django remove source files and how to running pyc files?
In Django project, I don't share the views.py to client. like to remove views.py source files from Django, only pyc files there. But when i remove source file, it gives me ImportError, it should refer pyc file, but it is not refering them. How to solve this problem? -
How to display latest created multiple records created twice in a same day in django
Here when the user clicks the schedule button multiple times in a day it is creating same set of records multiple times in the database But i want to display to only the lastest created records for example when the user clicks the schedule button first time it creates records from id 1 to 5 and again when the user clicks the schedule button for the second time its is creating the same records i.e id from 6 to 10 with updated time different Now in my front end i want to display only the records from 6 to 10 (because id 1 to 5 and 6 to 10 are same records irrespective of updated_on field) id o_num_id p_id s_date time_req i_line_id updated_on 1 1312 22 2023-03-14 225 2426 2023-03-10 06:19:52.174517 2 1312 22 2023-03-13 120 2426 2023-03-10 06:19:52.174517 3 1312 21 2023-03-12 430 2426 2023-03-10 06:19:52.174517 4 1312 20 2023-03-11 350 2426 2023-03-10 06:19:52.174517 5 1312 20 2023-03-10 720 2426 2023-03-10 06:19:52.174517 6 1312 22 2023-03-14 225 2426 2023-03-10 06:23:52.174517 7 1312 22 2023-03-13 120 2426 2023-03-10 06:23:52.174517 8 1312 21 2023-03-12 430 2426 2023-03-10 06:23:52.174517 9 1312 20 2023-03-11 350 2426 2023-03-10 06:23:52.174517 10 1312 20 2023-03-10 720 … -
The authenticate function return always none Django Project
I am working on a vehicle project management system, and using a custom table for storing the signup details in MySQL. When the user logins the authenticate function returns none always, I am using email and password fields for login checked the values are retrieving from database correctly or not The backend authentication ' def userLogin(request): if request.method == 'POST': email = request.POST.get('email') password = request.POST.get('password') print('from loginhtml page',email,password) try: user_profile = UserProfiles.objects.get(email=email) user = authenticate(request, username=email, password=password) print("from database ",user_profile.email,user_profile.password) print(user) if user is not None: login(request, user) messages.success(request, 'You have been logged in successfully.') return redirect('/DashboardPage.html') else: error_message='Invalid email or password. Please try again.' messages.error(request, error_message) except UserProfiles.DoesNotExist: error_message='Invalid email or password. Please try again.' messages.error(request, error_message) return render(request, 'userLogin.html') from django.contrib.auth.backends import BaseBackend from django.contrib.auth import get_user_model from django.shortcuts import redirect from .models import UserProfiles class UserProfileBackend(BaseBackend): def authenticate(self, request, email=None, password=None): try: user = UserProfiles.objects.get(email=email) if user.check_password(password): return user except UserProfiles.DoesNotExist: return None {% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Vehicle Parking Management System - User Login</title> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="{% static 'styles/loginstyle.css' %} "> </head> <body> <nav class="navbar navbar-expand-lg navbar-light bg-light"> … -
Should I create an endpoint per HTTP method in my Django backend application?
I am developing a Django backend application with Django Rest Framework. Apart from having to write a lot of code, is it good practice to have a separate endpoint for each CRUD operation? Say I have an Organization model that I would like to create CRUD endpoints for. My usual approach is to create an endpoint ListCreateOrganization(generics.ListCreateAPIView) and map that to the path /organization/. Then create another endpoint /organization/<int:pk>/ for a RetrieveUpdateDeleteOrganization(generics.RetrieveUpdateDestroyAPIView) (assuming all CRUD operations apply). What are the scalability and performance concerns of this approach? What about creating five endpoints and mapping that to each operation: Create - /organization/create List (get multiple instances) - /organization/list/ Get a single instance - /organization/<int:pk>/retrieve/ Update a single instance - /organization/<int:pk>/update/ Delete a single instance - /organization/<int:pk>/delete/ -
Image not working django (TRYING TO ADD PLACEHOLDER IMAGE)
Iam doing a food ordering website using django. Iam trying to keep the place holder image but it is not working. Below I have attached models.py,0001_initials.py,index.html. I tried but it is not working models.py: from django.db import models # Create your models here. class Item(models.Model): name=models.CharField(max_length=200) desc=models.CharField(max_length=200) price=models.CharField(max_length=200) image=models.CharField(max_length=400,default='https://upload.wikimedia.org/wikipedia/commons/e/e0/PlaceholderLC.png') def __str__(self) : return self.name 0001_initials.py: # Generated by Django 4.1.7 on 2023-03-07 13:10 from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Item', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ('desc', models.CharField(max_length=200)), ('price', models.CharField(max_length=200)), ('image', models.CharField(default='https://upload.wikimedia.org/wikipedia/commons/e/e0/PlaceholderLC.png', max_length=400)), ], ), ] index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> {% for item in item %} <div class="row"> <div class="col-md-3 offset-md-3"> <img src='{{item.image}}' class="card" height="150px"> </div> </div> {% endfor %} </body> </html> These are the files. Output: enter image description here -
Difference between calling user.save() and create_user when using UserCreationForm (or subclass of) and register view in Django
I am making a web app using Django 4.1. I am trying to implement a simple registration page. For the moment, I am using the UserCreationForm provided by Django. I do intend to implement a custom Here is my code from views.py: def register(request): if request.method == "POST": form = UserCreationForm(request.POST) if form.is_valid(): user = form.save(commit=False) user.clean() username = form.cleaned_data.get("username") raw_password = form.cleaned_data.get("password1") response_text = ( f"Received username: {username}\nReceived password: {raw_password}" ) user.save() return HttpResponse("<p>" + response_text + "</p>") else: form = UserCreationForm() return render(request, "register.html", {"form": form}) I need some help on knowing when create_user is used. I looked at this, but it doesn't address the issue of when to use create_user in the context of a registration form. How would one use create_user() in a user registration view? Should it even be used? What are the best practices? -
How to I make a Django model field with choices of all IANA timezones?
I would like to have a dropdown in the django admin console for valid iana timezone choices. How can I achieve something like this: from django.db import models class Building(models.Model): name = models.CharField(max_length=100) iana_timezone = models.CharField(max_length=100, choices=iana_timezone_choices) -
How to make a loop in views.py file through my Django Session Cart Data
This data i added to Django session.I want to calclute single data: (qty and price ) and i want to claclute my (total amount) dict_items([('1', {'name': 'Talon Lott', 'image': '/media/images/products/1.png', 'reg_price': '958.0', 'dis_price': '844.0', 'qty': 1}),('2', {'name': 'Lionel Owens', 'image': '/media/images/products/2.png', 'reg_price': '684.0', 'dis_price': '221.0', 'qty': '1'}),('3', {'name': 'Brenna Chan', 'image': '/media/images/products/3.png', 'reg_price': '728.0', 'dis_price': '177.0', 'qty': 1}),('4', {'name': 'Amos Osborne', 'image': '/media/images/products/4.png', 'reg_price': '453.0', 'dis_price': '547.0', 'qty': '1'})]) But In views.py file when i loop this data i only get id:1 data. {'name': 'Talon Lott', 'image': '/media/images/products/1.png', 'reg_price': '958.0', 'dis_price': '844.0', 'qty': 1} So how may i make a loop for my session data Here is my views.py file I used Jquey ajax on Add_to_cart button to add my product Add To Cart # Add To Cart def add_to_cart(request): card_product = {} card_product[str(request.GET['id'])] ={ 'name': request.GET['name'], 'image': request.GET['image'], 'reg_price': request.GET['reg_price'], 'dis_price': request.GET['dis_price'], 'qty': request.GET['qty'] } # print(card_product) # print(id, name, image, reg_price, dis_price, qty) if 'cartdata' in request.session: if str(request.GET['id']) in request.session['cartdata']: card_data = request.session['cartdata'] card_data[str(request.GET['id'])]['qty'] = int(card_product[str(request.GET['id'])]['qty']) card_data.update(card_data) request.session['cartdata'] = card_data else: card_data = request.session['cartdata'] card_data.update(card_product) request.session['cartdata']= card_data else: request.session['cartdata'] = card_product return JsonResponse({ 'data':request.session['cartdata'], 'totalitems':len(request.session['cartdata']) }) # Cart Page View class CartListView(IndexView): template_name = 'cart/cart.html' def get_context_data(self, …