Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django how to change the admin panel template
I am trying to change what is displayed when I click on a model in the django admin. For example if I have the model Book and then I go into the admin panel and click book, it will give me all the fields that I created the model with. But I want to edit that page that shows all that data. For example, if I click on the "Book" model in the admin panel and see my fields to edit, I want to put another bit of fields on the bottom from another model. Or maybe I want to put like a "Similar Books" list. Is it possible to edit this page? -
Static url goes after the regular page url
My static files only load on index page, but when navigating to another page like: examle_url/page, it returns a 404 error since it loads it like that: http://127.0.0.1:8000/categories/default/static/js/main.js, see the static loads after page settings.py STATIC_URL = 'static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static_root/') STATICFILES_DIRS = ( os.path.join(BASE_DIR, '/static/base'), ) urls.py "all my urls are in main directory and then i import views from apps" urlpatterns = [ path('admin/', admin.site.urls), path('profile/', profile, name="profile"), path('', index, name="index"), path('category/', category, name="category"), ] if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) If it matters my load static files are all in theme.html file and is then extended in all other html files. Any help will be greatly appreciated, thanks in advance! -
Having Issues trying to display my Order on my Order page can't seem to find the issue
How I tried to display it on my html template <div class="container"> <div class="col-md-12 h-100"> {% if messages %} {% for msg in messages %} <div class="alert alert-success"> {{msg.message}} </div> {% endfor %} {% endif %} {% for order in order_details %} <p>Order Number: {{order.id}}</p> <p>Order Date: {{order.created}}</p> <table class="table table-bordered table-hover table-condensed"> <thead> <tr> <th>Id</th> <th>Name</th> <th>Quantity</th> <th>Price</th> <th>Total</th> </tr> </thead> <tbody> {% for order_item in order.get_items %} <tr> <td>{{order_item.id}}</td> <td>{{order_item.product}}</td> <td>{{order_item.quantity}}</td> <td>&euro; {{order_item.price}}</td> <td>&euro; {{order_item.get_cost}}</td> </tr> {% endfor %} </tbody> </table> <div class="row"> <div class="col-md-12"> <p class="text-right"><strong>Order Total: &euro; {{order.get_total_cost}}</strong></p> </div> </div> <p> <a href=""><button class="btn btn-primary">Cancel Order</button></a> </p> {% endfor %} <div class="mx-auto"> {% if orders.paginator.num_pages > 1 %} <hr> <div class="text-center"> {% for pg in orders.paginator.page_range %} <a href="?page={{pg}}" class="btn btn-light btn-sm {% if orders.number == pg %} active {% endif %}">{{pg}}</a> {% endfor %} </div> {% endif %} </div> </div> </div> I have two models one for the user to fill out their address and a another to save the use details and products they bought. Not all the code is being displayed just more to do with user details class Order(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) email = models.EmailField() address = models.CharField(max_length=120) address2 … -
using aggregate in generic view django rest
I am going to calculate sum of a field in django but I am failing to do this I am getting this error AttributeError: 'dict' object has no attribute 'model' with annotate it works but it shows one field multiple times that's why I need to use aggregate here my code class TestStatistics(generics.ListAPIView): serializer_class = TestSerializer permission_classes = (permissions.AllowAny,) filter_class = TestStatisticsFilter def get_queryset(self): test_id = self.request.GET.get('test_id') data = Test.objects.filter( test_id=test_id).aggregate(total=Sum('total')) print(data) return data can anybody help me, please? Thanks in advance! -
Django PostGIS spatial query
I'm trying to do a spatial query in Django to a PostGIS database, but I've not been able to do it. I've try it with raw querys a with this GIS QuerySet API Reference. I dont know what I'm doing wrong. this is my modeles.py file: class RayosTotal(models.Model): ka = models.FloatField(db_column='kA', blank=True, null=True) # Field name made lowercase. tiempo = models.DateTimeField(db_column='Tiempo',primary_key=True, blank=True, null=False) # Field name made lowercase. geom = models.PointField(blank=True, null=True) class Meta: managed = False db_table = 'Rayos_total' unique_together = (('lat', 'lng', 'tiempo'),) class Departamentos(models.Model): geom = models.MultiPolygonField(blank=True, null=True) cod_dane = models.IntegerField(db_column='COD_DANE',primary_key=True, blank=True, null=False) nom_dpto = models.CharField(db_column='NOM_DPTO', max_length=250, blank=True, null=True) # Field name made lowercase. class Meta: managed = False db_table = 'departamentos' and this is my views.py def join1(request): points = serialize('geojson',RayosTotal.objects.all()) x=serialize('geojson',Departamentos.objects.filter(geom__contains=points)) return HttpResponse(x,content_type='json') #with join1 I get this message: Couldn't create spatial object from lookup value def join2(request): x=RayosTotal.objects.raw("""SELECT "Rayos_total".geom AS geom FROM "public"."Rayos_total" INNER JOIN "public"."departamentos" ON ST_Within("Rayos_total".geom, "departamentos".geom) WHERE "departamentos"."NOM_DPTO" = 'CHOCO'""") return HttpResponse(x,content_type='json') #with join2 I get this message: Raw query must include the primary key any ideas ? thank you for the help -
Keep Bootstrap dropdown open a new page?
I use a bootstrap dropdown in my django framework. In the dropdown menu in my sidebar there are several links to other pages. If I click it, my dropdwon menu disappear becouse the menu fades away. Is there anyway way to prevent this? I tried e.startPropagation, but that didn't seem to work: Here the HTML section with the dropdown manu: <div class="container-fluid"> <div class="row"> <nav class="col-md-2 d-none d-md-block bg-dark sidebar"> <div class="sidebar-sticky"> <ul class="nav flex-column"> <li class="nav-item"> <a class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1" href="#homeSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">Performance Monitoring<span data-feather="plus-circle"></span></a> <ul class="collapse list-unstyled" id="homeSubmenu"> <li> <a class="nav-link" href="#"> <span data-feather="monitor"></span> Dashboard</a> </li> <li> <a class="nav-link" href="#"> <span data-feather="trending-up"></span> Conto Economico</a> </li> <li> <a class="nav-link" href="#"> <span data-feather="home"></span> Stato patrimoniale </a> </li> <li> <a class="nav-link" href="#"> <span data-feather="dollar-sign"></span> Rendiconto Finanziario</a> </li> </ul> </li> -
Invalid input syntax for type inet
Im having trouble persisting ip_addresses from my users via Django into Postgres. Can I just convert the ip_address field from inet to string and store that in the VARCHAR postgres field? -
After setting up cookiecutter for Django, I get a ConnectionRefusedError for sign-up and sign-in
I'm working on a project using cookiecutter, but for whatever reason, I can't sign in or sign up. If I sign in as a superuser through the admin, I am then logged in when I refresh the homepage and have access to the site, but can't authenticate otherwise. This is the error: ConnectionRefusedError at /accounts/login/ [WinError 10061] No connection could be made because the target machine actively refused it Request Method: POST Request URL: http://127.0.0.1:8000/accounts/login/ Django Version: 3.0.5 Exception Type: ConnectionRefusedError Exception Value: [WinError 10061] No connection could be made because the target machine actively refused it Exception Location: C:\Users\Machine\miniconda3\envs\portfolio\lib\socket.py in create_connection, line 796 Python Executable: C:\Users\Machine\miniconda3\envs\portfolio\python.exe Python Version: 3.8.2 Python Path: ['C:\Users\Machine\Desktop\portfolio-project', 'C:\Users\Machine\miniconda3\envs\portfolio\python38.zip', 'C:\Users\Machine\miniconda3\envs\portfolio\DLLs', 'C:\Users\Machine\miniconda3\envs\portfolio\lib', 'C:\Users\Machine\miniconda3\envs\portfolio', 'C:\Users\Machine\AppData\Roaming\Python\Python38\site-packages', 'C:\Users\Machine\miniconda3\envs\portfolio\lib\site-packages', 'C:\Users\Machine\Desktop\portfolio-project\portfolio', 'C:\Users\Machine\Desktop\portfolio-project\portfolio'] Server time: Mon, 20 Apr 2020 15:19:25 -0500 When I search for this error, I get some references to setting up an e-mail back-end, but as far as I can tell, this is already set up for local development. I went through Daniel Feldroy's Django Crash Course which uses a modified version of cookiecutter, but don't remember having this issue then. -
ValueError at /books/results/
"Field 'id' expected a number but got 'results'." I'm getting this error while trying to use search filter over a list of books. It was working fine until I changed the Class-based view to Function based view. This was the Class based view earlier using the default DetailView class: class BookDetailView(LoginRequiredMixin,DetailView): model = models.Book template_name='book_detail.html' login_url='login' This is the new Function based detail view I changed to: @login_required def book_detail(request,book_id): model =models.Book book=model.objects.get(id=book_id) template ='book_detail.html' owner =CustomUser.objects.get(username=book.owner) return render(request,template,{'book':book,'owner':owner}) Independently when I'm trying to go to detail view, its working fine. But when I try to search using the 'book_search' view, its throwing this error. Previously search functionality was also working fine. @login_required def book_search(request): template ='book_list.html' model =models.Book query =request.GET.get('q') results =model.objects.exclude(owner =request.user).order_by('-available','-id') if query: results =results.filter(Q(title__icontains =query)) paginator = Paginator(results, 9) page =request.GET.get('page') try: books =paginator.page(page) except PageNotAnInteger: books =paginator.page(1) except EmptyPage: books= paginator.page(paginator.num_pages) return render(request,template,{'books':books,'query':query,'page':page}) It has something to do with the result set that the search view is returning a list of books while detail view only require just one id. -
Failing Docker install of Jupyter on Django
I'm following the recommended way to install jupyter on django by installing the following pip packages: jupyter ipython django-extensions As described here for example: https://medium.com/ayuth/how-to-use-django-in-jupyter-notebook-561ea2401852 it was working for a while but since some days is failing and I cannot figure out what the problem really is: The error I'm getting is the following: ERROR: Complete output from command /usr/local/bin/python /usr/local/lib/python3.6/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-2xou1hp2/overlay --no-warn-script-location --no-binary :none: --only-binary :none: --no-index -- setuptools wheel 'ipython>=5' 'jupyter_core>=4.2' jupyter_client: ERROR: Collecting setuptools ERROR: Could not find a version that satisfies the requirement setuptools (from versions: none) ERROR: No matching distribution found for setuptools something seems to have broken the install but I'm lost about what it is. -
Django : error with form_valid and get_full_path()
I am trying to acquire the current tenant's domain name through a form. I am trouble with writing the view that would achieve that. here is my form.py: class ETL(forms.Form): Historical = forms.FileField() Pre_processing = forms.FileField() Supplier = forms.FileField() parameters = forms.FileField() def process_data(self, *args, **kwargs): url = self.request.get_full_path() dbschema = remove_www(url.split(':')[0]).lower() engine = create_engine('postgresql://pierre:56-Pmtmpmtm@127.0.0.1:5432/dbexostock12', connect_args={'options': '-csearch_path={}'.format(dbschema)}) fh = io.TextIOWrapper(self.cleaned_data['Historical'].file) fpp = io.TextIOWrapper(self.cleaned_data['Pre_processing'].file) fs = io.TextIOWrapper(self.cleaned_data['Supplier'].file) fp = io.TextIOWrapper(self.cleaned_data['parameters'].file) .... view.py @method_decorator(login_required, name='dispatch') class Getfiles(LoginRequiredMixin,FormView): template_name = 'upload.html' form_class = ETL success_url = 'Home' def form_valid(request, form): url = request.get_full_path() form.process_data() return super().form_valid(form) and here is the error that I get: AttributeError at /upload.html 'Getfiles' object has no attribute 'get_full_path' I am beginner with django, I am not sure how to resolve this, and the documentation about it got me a bit confused, especially about the form_valid() method. Thank you! -
Required parameter name not set - Django + Amazon S3
I'm trying to setup Amazon S3 for my Django app and I keep getting told 'Required parameter name not set '. This error seems to happen when an image needs to be displayed. For example, it works fine on the homepage where there are no images. Really don't know where I have went wrong. I have following set up in my settings.py. INSTALLED_APPS = [ 'projects', 'users.apps.UsersConfig', 'crispy_forms', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'storages', ] #S3 BUCKET CONFIG AWS_ACCESS_KEY_ID = 'acccess key' AWS_SECRET_ACCESS_KEY = 'secret access key' AWS_BUCKET_NAME = 'bucket name' AWS_S3_FILE_OVERWRITE = False AWS_DEFAULT_ACL = None DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' Full traceback Environment: Request Method: GET Request URL: http://127.0.0.1:8000/projects/createListing Django Version: 2.2 Python Version: 3.7.3 Installed Applications: ['projects', 'users.apps.UsersConfig', 'crispy_forms', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'storages'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Template error: In template C:\Users\Maksims\Desktop\CA4106-Cloud-Computing\test\src\personal_portfolio\templates\base.html, error at line 10 Required parameter name not set 1 : {% load static %} 2 : <!doctype html> 3 : <html lang="en"> 4 : <head> 5 : <!-- Required meta tags --> 6 : <meta charset="utf-8"> 7 : <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 8 : 9 : <!-- Bootstrap CSS --> 10 : <link re l="stylesheet" href="https://stack … -
Django ValidationError EmailField
I've been struggling with this error below. I am trying to checkout a user as guest with email but I get a validation error: ValidationError at /register/guest['“NU1@company.com” value must be either True or False.'] next_ = request.GET.get('next') next_post = request.POST.get('next') redirect_path = next_ or next_post or None if form.is_valid(): email = form.cleaned_data.get('email') new_guest_email = GuestEmail.objects.create(email=email) request.sesssion['guest_email_id'] = new_guest_email.id if is_safe_url(redirect_path, request.get_host()): return redirect(redirect_path) else: return redirect('/register/') return redirect('/register/') -
Displaying User Data in Django Admin from multiple models
If I have user data stored in multiple models (Account, x, y, z), how can I have them all displayed on one admin page? For example, If I try something along the lines of: from account.models import Account, XModel, YModel, ZModel class AccountAdmin(UserAdmin): list_display = ('email', . . . , 'a', 'b', 'c') # . . . admin.site.register(Account, AccountAdmin) admin.site.register(XModel, AccountAdmin) admin.site.register(YModel, AccountAdmin) admin.site.register(ZModel, AccountAdmin) I'll get a ton of error messages, i.e. System check identified 30 issues (0 silenced). -
Making changes to Add page description in Django Admin
I'm working on django.And have created a custom user model for sign up.But in the add page there a description which I want to change,have a look at the red mark in the pic And my admin file look like this: from django.contrib import admin from django.contrib.auth.admin import UserAdmin from .models import CustomUser class CustomUserAdmin(UserAdmin): summary="hi" list_display = ('first_name','last_name','email','is_staff', 'is_active',) list_filter = ('first_name','email', 'is_staff', 'is_active',) search_fields = ('email','first_name','last_name','a1','a2','city','state','pincode') ordering = ('first_name',) add_fieldsets = ( ('Personal Information', { # To create a section with name 'Personal Information' with mentioned fields 'description': "", 'classes': ('wide',), # To make char fields and text fields of a specific size 'fields': (('first_name','last_name'),'email','a1','a2','city','state','pincode','check', 'password1', 'password2',)} ), ('Permissions',{ 'description': "", 'classes': ('wide', 'collapse'), 'fields':( 'is_staff', 'is_active','date_joined')}), ) fieldsets = ( ('Personal Information', { 'classes': ('wide',), 'fields': (('first_name','last_name'),'email','a1','a2','city','state','pincode','password')}), ('Permissions', {'fields': ('is_superuser','is_staff', 'is_active','date_joined')}), ) admin.site.register(CustomUser, CustomUserAdmin) What should I add to my admin file and where so that I change it?? Thanks in advance!! -
Django Rest Framework serialization.save() parameters
The below code perform saving new user inputs. In the serializer.save() code block why can't we pass data like serializer.save(ebook,review_author) instead serializer.save(ebook=ebook,review_author=review_author) ? class ReviewCreateView(CreateAPIView): queryset = Review.objects.all() serializer_class = ReviewSerializers def perform_create(self, serializer): pk = self.kwargs.get('e_pk') ebook = get_object_or_404(Ebook,pk=pk) review_author = self.request.user serializer.save(ebook=ebook,review_author=review_author) -
How to make Django Rest Apis Async
Following is my Django application configuration: django = 2.2.11 djangorestframework = 3.9.2 Python = 3.8.2 I am exposing a set of Rest apis for react js frontend, which connects to Postgres using a layered architecture views (controller) - services - data_layer. In data layer, I fetch the data using Connection.Cursor, then transform the data fetched using cursor.fetchall. By default the rest apis are synchronous apis, I am trying to find a way to make them Async, so that system scalability can be increased, otherwise every call will block the main thread. I have tried the following options: Using asyncio library, but I am unable to make the complete call chain Async. I generally get an error that expected return was Response / HttpResponse, but the method is returning Co-routine. I can find examples which contains running simple methods as async, but there's isn't an example of Django Rest API Tried the following link, which use the Threadpool executor to segregate every call on a thread in the controller itself, though the challenge is where to make the Asyncio call in the Main method as shown in the link, since these APIs are externally invoked. Can aiohttp help, not sure, but … -
Django dont get redirect when useing HttpResponseRedirect
i'm create a class views on django, and i want when user submit the form then redirect him to this url:http://127.0.0.1:8000/main/workhouses_list/ but when it redirect this url is printed in address bar: Request URL: http://127.0.0.1:8000/main/workhouse_reg/tsil_sesuohkrow:niam this is my code on the views: def workhouse_reg(request): if request.method== 'POST': workhouse_form=WorkhouseForm(request.POST) if workhouse_form.is_valid(): workhouse_form.save() return HttpResponseRedirect(reverse('main:workhouses_list')) else: return HttpResponse('not valid') this is my urls: app_name ='main' urlpatterns=[ path('workhouses_list/',views.workhouses_list,name='workhouses_list'),] i dont know why get this error..please some one idea..!! thanks..!! -
Give staff permissions to a particular group in Django
So I was making a Django app, and I differentiated users into various groups namely 'admin', 'customer', 'shopkeeper', etc. I can set if the user belongs to the 'admin' group only through the backend (through the Django admin panel). Now I want that whenever a user gets into the 'admin' group, he/she should automatically be given staff access or admin privileges automatically. PS: I know that we can go to the User tab and give him those permissions, but I want to automatically provide certain privileges to a corresponding group. How can that be done? -
Nginx up like orphan containers and not working (521 error)
I am using a container Nginx with docker-compose, but It have a bad configuration. When I link the domain to 8000 port I have a 521 error. It is my Dockerfile: FROM nginx COPY nginx.conf /etc/nginx/nginx.conf I used nginx-alpine, but it not working without alpine python, and I had to change it because Pandas not working with alpine. So, my nginx.conf is: user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; ## Default: 1024, increase if you have lots of clients } http { include /etc/nginx/mime.types; # fallback in case we can't determine a type default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; upstream app { server django:5000; } server { # use 'listen 80 deferred;' for Linux # use 'listen 80 accept_filter=httpready;' for FreeBSD listen 5000; charset utf-8; # Handle noisy favicon.ico messages in nginx location = /favicon.ico { return 204; access_log off; log_not_found off; } location / { # checks for static file, if not found proxy to app try_files $uri @proxy_to_app; } # django app location @proxy_to_app { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; … -
Can't implement sessions in Django
I had a global variable called list but to implement session, I inserted it in index function but where i previously used that variable in an add function now it is giving an error "Unresolved reference 'tasks'" i tried replacing it with a request.session["tasks"] but when i used it i couldn't add tasks to my to do list ap class NewTaskForm(forms.Form): task = forms.CharField(label="New Task") def index(request): if "tasks" not in request.session: request.session["tasks"] = [] return render(request,"tasks/index.html",{ "tasks": request.session["tasks"] }) def add(request): if request.method == "POST": form = NewTaskForm(request.POST) if form.is_valid(): task = form.cleaned_data["task"] tasks.append(task) return HttpResponseRedirect(reverse("tasks:index")) else: return render(request,"tasks/add.html",{ "form": form }) return render(request, "tasks/add.html",{ "form": NewTaskForm() })''' -
django_microsoft_auth reply URL issues and other questions
I am trying to use the django_microsoft_auth package. I have some questions and issues: When I try and login I get AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application - how do I debug or fix this? The docs say If you want multiple Site objects and generate authorize URL when accessing your site from multiple domains, you must not set a SITE_ID But if I do not set the SITE_ID my app will not run at all - I get Site matching query does not exist. So I am running with SITE_ID = 1. Is that an issue? The login with microsoft link is only on the admin page - how would I get that on my app's main login page? -
integrating clean architecture with ORM
I'm trying to develop a monolithic Django application with uncle.bob's clean architecture. The problem is I don't want to miss the powerful abilities of Django ORM but this will make a confusion at the same time. The ORM will handle the repository and data layer of application but at the same time makes problem in DTO because I don't want to transfer objects of type Django model. Should I create a port to convert Django model objects into plain old Python objects? I think Django is not much suitable for integrating with clean architecture. I mean for a monolithic large scale application Django will have many down sides. -
Django form: ModelChoiceField(multiple-select) similar to ModelAdmin.filter_horizontal?
How can I create a field ModelChoiceField(multiple-select) in my own form, similar to that available on admin site (ModelAdmin.filter_horizontal)? Two boxes side by side Interface that allows searching Follow the image below: ChoiceField-MultipleSelect "Admin" -
How to see queries run by Django ORM?
I have DEBUD = True in settings.py file. I have MySQL database configured with django. I have a Course model in courses/models.py. In courses/views.py, I have: @api_view(['GET']) def courses_list(request): courses = Course.objects.all() serializer = CourseSerializer(courses, many=True) return Response(serializer.data) Now, If I make request from Postman to hit this view, I think some query like SELECT * FROM COURSES must be executed. How to see which queries has been executed when I make a request to some backend URL? I have also tried from django.db import connection as described here, but got empty array like this: >>> from django.db import connection >>> connection.queries [] Please, help me achieve what I want to.