Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
I cannot display dynamic data in Django
View of base url View of the page when any one of link is clicked. Here the room name is not visible urls.py from django.urls import path from . import views urlpatterns = [ path('', views.home, name="home"), path('room/<str:pk>/', views.room, name="room"), ] views.py from django.shortcuts import render from django.http import HttpResponse # Create your views here. # python dictionary below rooms = [ {'id': '1', 'name': 'Lets learn Python!'}, {'id': '2', 'name': 'Design with me!'}, {'id': '3', 'name': 'Frontend Dev!'}, ] def home(request): context = {'rooms': rooms} return render(request, 'base/home.html', context) def room(request, pk): room = None for i in rooms: if i['id'] == int(pk): room = i context = {'room': room} return render(request, 'base/room.html', context) home.html {% extends 'main.html' %} {% block content %} <h1>HOME</h1> <div> <div> {% for room in rooms %} <h5>{{room.id}}</h5> <h2><a href="{% url 'room' room.id %}">{{room.name}}</a></h2> {% endfor %} </div> </div> {% endblock %} room.html {% extends 'main.html' %} {% block content %} <h1>{{room.name}}</h1> {% endblock %} Here, I tried rectifying the links and checking the functions in all the files. I believe there is something wrong in room.html file, but cannot find the error. -
Sending a parameter to the render function of pdf
I'm trying in Django to render from html to pdf a monthly report that takes data from a database by month. I need to send the selected month on the html page to the class that creates the Pdf. How can I do that? My view class : class view_pdf_monthly_report(View): def get(self, request, *args, **kwargs): push = {'month':month} pdf = render_to_pdf('home/pdf_monthly_inquiries_report.html', push) return HttpResponse(pdf, content_type='application/pdf') My html: how can I send the month from here? <div class="text-center"> <a class="btn btn-info" href="{% url 'view_pdf_monthly_report'%}" target="_blank">View PDF</a> </div> Thanks ! -
I am trying to sort and paginate object at the same time in django, but after paginating the sort gets reset
If I have applied the sorting to my wallpapers and after that if I try to paginate the sorting gets reset. like if I have sorted wallpapers according to pub date in ascending order and after pagination, it gets back to normal. view def home(request): WAllPAPER_PER_PAGE = 4 WALL = Wallpaper.objects.all() from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator import json from django.core.serializers.json import DjangoJSONEncoder from django.db.models import Q ordering =request.GET.get('ordering', "") search = request.GET.get('search', "") if search: wallpapers = Wallpaper.objects.filter(Q(name__icontains=search) | Q(category__category_name__icontains=search) | Q(tags__tag__icontains=search)) else: wallpapers = Wallpaper.objects.all() if ordering: wallpapers = wallpapers.order_by(ordering) page = request.GET.get('page', 1) wallpaper_paginator = Paginator(wallpapers, WAllPAPER_PER_PAGE) try: wallpapers = wallpaper_paginator.page(page) except EmptyPage: wallpapers = wallpaper_paginator.page(wallpaper_paginator.num_pages) except: wallpapers = wallpaper_paginator.page(WAllPAPER_PER_PAGE) context = {"wallpapers": wallpapers, 'page_obj': wallpapers, 'is_paginated': True, 'paginator': wallpaper_paginator, 'WALL': WALL} return render(request, "Wallpaper/Home.html", context) -
Django comment form
I am following the guide to create comment given by Django central, https://djangocentral.com/creating-comments-system-with-django/ and it is working. However I am using the {{ form.as_p }} Which will give 3 fields, as the form say, with name, email and the body. But i wanted to have predefined name, which would be your username you are logged inn with and the email attached to that account. How would i go ahead to create that? forms.py class CommentForm(forms.ModelForm): class Meta: model = Comment fields = ['name', 'email', 'body'] models.py class Comment(models.Model): post = models.ForeignKey(Post, related_name='comments', on_delete=models.CASCADE) name = models.CharField(max_length=255) email = models.EmailField() body = models.TextField() date_added = models.DateTimeField(auto_now_add=True) class Meta: ordering = ['-date_added'] def __str__(self): return self.name views.py def post_detail(request, category_slug, slug, status=Post.ACTIVE): post = get_object_or_404(Post, slug=slug) if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.save() return redirect('post_detail', category_slug=category_slug, slug=slug) else: form = CommentForm() return render(request, 'blog/post_detail.html', {'post': post, 'form': form}) in the html template {% if user.is_authenticated %} <h2 class="subtitle is-4">Comments</h2> <form method="post" class="mb-6"> {% csrf_token %} {{ form.as_p }} <div class="field"> <div class="control"> <button class="button is-success">Submit comment</button> </div> </div> </form> {% endif %} -
I'm Trying to allow multiple user to use jupyter lab for coding online on my website
I want to allow the user to log in to my Django app and have their code separately and should not be allowed to delete the code/Folder/Files which they have not created. For each user, the code should get saved separately Here is the git repository of my tried code https://github.com/Rajput612/django-jupyterlab Any Help Or guidance will be a great help as I want to create this for people who don't have the laptop at their disposal. -
Django-Rest-Framework: documenting parameters of function-based view without model
So, I have a function-based view on a DRF application that looks something like this: from rest_framework.decorators import api_view, permission_classes from rest_framework.response import Response from rest_framework.permissions import AllowAny from rest_framework import status def passcode_generator(callsign: str) -> int: return 0 # Placeholder @api_view(["POST"]) @permission_classes([AllowAny]) def get_passcode(request): callsign = request.data.get("callsign", None) if callsign is None: raise Response( {"error": "Missing callsign"}, status=status.HTTP_400_BAD_REQUEST ) return Response({"passcode": passcode_generator(callsign)}) Clearly, "callsign" is the only expected argument, and it is mandatory. And that "passcode" is the only field in the response. But DRF doesn't know that. This means that DRF's web-browsable API page can't show the HTML form tab, and means that documentation generators can't properly document it: So the question is, how can one document this function-based view? Thanks! -
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 1135-1137: ordinal not in range(256)
I'm trying in Django to render from html to pdf a monthly report that takes data from a database in Hebrew. I have a problem that I have not been able to fix for several days. When I display data in English the pdf works properly and everything is fine, but when I want to display data in the Hebrew language from the database, it does not allow me and the following error appears: 'latin-1' codec can't encode characters in position 1135-1137: ordinal not in range(256) I have already tried a several solutions: I changed the font several times in the base html of the PDF via the css and it just does not help at all. I tried to change the rendering function I have at the moment and it also did not help at all. My rendering function : def render_to_pdf(template_src, context_dict={}): template = get_template(template_src) html = template.render(context_dict) result = StringIO.StringIO() pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result) if not pdf.err: return HttpResponse(result.getvalue(), content_type='application/pdf') return None -
Reverse for 'Newsdetail' with arguments '('',)' not found. 1 pattern(s) tried:Django error
In the following links direct to same URL name with different params, <div onclick="location.href='{% url 'newscountry' 'Saudi' %}'"> x </div> <div "onclick="location.href='{% url 'newscountry' 'UAE' %}'"> y </div> However when the second div element is clicked it gives an error, but the first link works fine. URL.PY path('country/<str:countryname>/',NewsCountryView.as_view(),name='newscountry'), VIEW.PY class NewsCountryView(ListView): model = News template_name = 'newsfront/index.html' # <app>/<model>_<viewtype>.html context_object_name = 'news' def get_queryset(self): country=self.kwargs.get('countryname') return News.objects.filter(country=country) -
Can't set $(element).innerText after including in-browser babel to a django project
The moment I included babel, the following snippet stopped working as before. Perhaps it's because of the absence of a module bundler. I need react just for one UI component. index.js document.addEventListener('DOMContentLoaded', () => { document.querySelector('#' + VIEWS.profile).innerText = 'profile' }) index.html <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script type="text/babel" src="{% static 'network/index.js' %}"></script> The querySelector query returns the target element when tested in console under the same execution context. Babel reports, You are using the in-browser Babel transformer. Be sure to precompile your scripts for production Moreover, babel makes it hard to debug js in the browser. Is there any way around this? -
Password is not hashed on User model update
I have extended the AbstractUser model in django. When I post the SignUp form from Postman, the password gets hashed. But after sending the Put method in Postman for changing the password, the password gets showed in Django admin as it is not getting hashed. Models.py class User(AbstractUser): """This Class is used to extend the in-build user model """ ROLE_CHOICES = (('CREATOR','CREATOR'),('MODERATOR','MODERATOR'),('USERS','USERS')) GENDER_CHOICES = (('MALE','MALE'),('FEMALE',"FEMALE"),('OTHER','OTHER')) date_of_birth = models.DateField(verbose_name='Date of Birth', null=True) profile_image = models.ImageField(upload_to='media/profile_images', verbose_name='Profile Image', default='images/default.webp', blank=True) bio = models.TextField(verbose_name='Bio') role = models.CharField(max_length=10, verbose_name='Role', choices=ROLE_CHOICES) gender = models.CharField(max_length=6, verbose_name='Gender', choices=GENDER_CHOICES) Serializers.py from django.contrib.auth import get_user_model User = get_user_model() class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('first_name','last_name','username','password','email','date_of_birth', 'profile_image','bio','role','gender') extra_kwargs = {'is_active':{'write_only':True}, 'password':{'write_only':True}} def create(self, validated_data): return User.objects.create_user(**validated_data) Views.py from oauth2_provider.contrib.rest_framework import TokenHasReadWriteScope, TokenHasScope from users.serializers import UserSerializer from users.models import User class UserAPI(viewsets.ModelViewSet): serializer_class = UserSerializer queryset = User.objects.all() permission_classes = [permissions.IsAuthenticated, TokenHasReadWriteScope] I tried it in these way also by overwriting the serializers.py class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('first_name','last_name','username','password','email','date_of_birth', 'profile_image','bio','role','gender') extra_kwargs = {'is_active':{'write_only':True}, 'password':{'write_only':True}} def create(self, * args, ** kwargs): user = super().create( * args, ** kwargs) p = user.password user.set_password(p) user.save() return user def update(self, * args, ** kwargs): user = super().update( … -
how to resolve (1045, "Access denied for user 'User'@'IP or host' (using password: YES)") when build django docker container?
Well, I have multiple databases in django project. One is default and second istest_dev. i have created docker container. and then everything went well till building the container. after that When I try to call my django app api which is using test_dev db for reading data. I have encountered: OperationalError at /api/projects/ (1045, "Access denied for user 'test_dev'@'133.98.72.111' (using password: YES)") In settings file, my databases configuration: { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': Path(__file__).resolve().parent.parent / 'db.sqlite3', }, "test_dev" : { 'ENGINE': 'django.db.backends.mysql', 'NAME': "test_dev", 'USER': 'user', 'PASSWORD': 'db_password', 'HOST': '?=hosted_domain', 'PORT': '3306', 'SSL': True } } If you know any solution. Please help me out of this. Soon I have to put things on production.. -
Connect django+reactjs+firebase
How to send form data to firebase database via Django I connected Django to firebase ,how would I connect ReactJs to Django to send form data to firebase database using validation in python. If anyone has Github profile please paste it here so that I can take reference. -
Can't install opencv package in a Raspberry pi
So I am doing a face recognition project in a Raspberry Pi. It is a django project and when I run the server I get this error: AttributeError: module 'cv2' has no attribute 'face' I searched for the error and I came up with that I needed to install opencv-contrib-python The problem is that when I try to install it the download gets to 99% and I get this: 'pip3 install opencv-contrib-pyt…' terminated by signal SIGKILL (Forced quit). Does anyone know why this happens? how can I fix this? help is much appreciated -
How to create dynamic URL in Django when form is submitted
I am building a website in django where user search for student data by entering the roll number of the student. For example if user enters the roll number 001 in the form then student data should be fetch from database and Url should be https://www.studentdata.com/001 Similarly if user enters roll number 003 then the url should be https://www.student.com/003 and so on. I want to build website where I need to show thousands of student data. -
JSONDecodeError at / Expecting value: line 1 column 1 (char 0) when try to return response in a django rest_framework
I'm new to python rest_framework. I am trying to create a django website with two Apps. The first App has an HTML form which gets a city name from the user and then sends a request to the API in the second App, calls WeatherApp. In the WeatherApp I read data from database and serialize it but when trying to return response, I get this error: JSONDecodeError at / Expecting value: line 1 column 1 (char 0) This is the first App views: def index(request): context = {'form': form} if request.method == 'POST': form = CityForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] url = "http://127.0.0.1:8000/city/{}" city_weather = requests.get(url.format(name)).json() This is the WeatherApp views: def myfunc(self, cityname): query = City.objects.filter(name = cityname)[0] serializer = CitySerializer(query) return Response(serializer.data) This is the serializer: class CitySerializer(serializers.ModelSerializer): class Meta: model = City fields = ("id", "name", "temperature") And this is my model: class City(models.Model): name = models.TextField(max_length=150) temperature = models.IntegerField(max_length=200, default=40) LastUpdate = models.DateTimeField(default= datetime.now) def __str__(self) -> str: return self.name When I debug the code, the error appears at return self.name in the model. Any help would be appreciated. -
How to upload a folder into a model field(In Admin panel), which will create an object for each file inside of that folder in Django?
I have a folder with 100 plus audio files from the same author. It would take time for me to upload each file separately to create 100 plus objects. What I want to do is in a model of the Author I want to have a field where I can upload a folder with all the audio files, which will then create a separate object for each audio file in that folder. -
Django OneToOneField Default value?
Hello Django OneToOneField Default value Inventory model class Inventory(models.Model): user = models.OneToOneField(User, null=True, on_delete=models.CASCADE) energy = models.OneToOneF`ield(Product, default="Products.energy", null=True, on_delete=models.CASCADE) Products model class Product(models.Model): name = models.CharField(max_length=255) cost_for_sale = models.IntegerField() cost_for_buy = models.IntegerField() def __str__(self): return f'{self.name}' -
Error "ModuleNotFoundError: No module named 'psycopg2'" when deploying Django app to Google App Engine
I'm working on a Django application and using Fabric for deployment. When I deployed the apps to staging in Google App Engine using fab testing, I got this error: Updating service [staging] (this may take several minutes)...failed. ERROR: (gcloud.app.deploy) Error Response: [9] An internal error occurred while processing task /app-engine-flex/flex_await_healthy/flex_await_healthy>2022-01-01T09:48:30.226Z15496.fj.0: Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line utility.execute() File "/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 347, in execute django.setup() File "/env/lib/python3.6/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/env/lib/python3.6/site-packages/django/apps/registry.py", line 89, in populate app_config = AppConfig.create(entry) File "/env/lib/python3.6/site-packages/django/apps/config.py", line 116, in create mod = import_module(mod_path) File "/opt/python3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/env/lib/python3.6/site-packages/django/contrib/postgres/apps.py", line 8, in <module> from .signals import register_type_handlers File "/env/lib/python3.6/site-packages/django/contrib/postgres/signals.py", line 3, in <module> import psycopg2 ModuleNotFoundError: No module named 'psycopg2' I'm sure the psycopg2 has been installed successfully earlier. Here's the list installed dependencies after checking by pip list: ... platformdirs 2.4.0 prompt-toolkit 3.0.24 … -
django rest frame work, i was trying to create an exchange rate that compare the first currency to the second currency and print the value of second
from Django .shortcuts import render import requests from exchange rate .models import Exchange rate from . serialize import Exchange rate Serialize from rest framework .response import Response from rest_ framework import view sets from .models import Exchange rate class Exchange value(view sets .Model View Set): query set=Exchange rate .objects .all() serialize _class = Exchange rate Serialize def get(request, rate1, rate2): if request .method =='POST': url="https://api.exchangerate-api.com/v4/latest/USD" res=requests .get( URL ) result =res .Jason () try: if rate1 in result: return render(request ,result[rate2]) except Exception as e: print("currency could not be process") -
Why does this show when i try to add image on Django?
Cant add image into user This is what it show in the page : <django.db.models.fields.files.ImageField> add i need the bar that add the picture, the forms and models seem correct and i install the pillow enter image description here -
How to get original host in django using proxy?
I use nginx proxy for a django application. And I want request.META['HTTP_HOST'] parameter to get my real host. So I use USE_X_FORWARDED_HOST setting parameter. But request.META['HTTP_HOST'] still gets wrong value from proxy. nginx location / { proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://backend:8000; } django settings USE_X_FORWARDED_HOST = True SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') parts of request.META variable 'HTTP_HOST': 'backend:8000', 'HTTP_X_FORWARDED_PROTO': 'http', 'HTTP_X_FORWARDED_HOST': 'localhost', 'HTTP_X_FORWARDED_SERVER': 'localhost', 'HTTP_X_FORWARDED_FOR': '192.168.240.1' Why USE_X_FORWARDED_HOST setting doesn't work? I use Django 4.0. -
About TailwindCSS with Django
I want to use Tailwind CSS in Django project. When googling, I found following two ways. Use CDN Use Tailwind CLI tool Using CDN is simpler, so I will use CDN, but doc says that CDN is not the best way. Then I have questions. Why Using CDN is not the best choice? Which is better? -
django: html submit form and display result in smae page without jumping/rereshing into new page
I am new to django and html. below is my first test web page of a simple online calculator. I found a problem that when clicking the "submit" button, it tends to jump to a new web page or a new web tab. this is not what I want. Once the user input the data and click "submit" button, I want the "result" field on the page directly show the result (i.e. partially update only this field) without refresh/jump to the new page. Also I want the user input data kept in the same page after clicking "submit". I saw there might be several different ways to do this work, iframe/AJAX. However, I have been searching for answers for 5 days and none of the answers really work for this very basic simple question!! html: <form method="POST"> {% csrf_token %} <div> <label>num_1:</label> <input type="text" name="num_1" value="1" placeholder="Enter value" /> </div> <div> <label>num_2:</label> <input type="text" name="num_2" value="2" placeholder="Enter value" /> </div> <br /> <div>{{ result }}</div> <button type="submit">Submit</button> </form> view.py def post_list(request): result = 0 if request.method == "POST": num1 = request.POST.get('num_1') num2 = request.POST.get('num_2') result = int(num1) + int(num2) print(request.POST) print(result) context = { 'result': result } return render(request, 'blog/post_list.html', … -
Import "django.urls" could not be resolved from sourcePylancereportMissingModuleSource
I am getting default django homepage while I have linked urls perfectly. and if i run it is saying that django module is not present (Import "django.urls" could not be resolved from sourcePylancereportMissingModuleSource). While I have started the project with Django, -
Why the ip address captured by HTTP_X_FORWARDED_FOR is diferrent from the address shown in the device
I want some clarification regarding ip address captured by HTTP_X_FORWARDED_FOR. In my website I am storing the ip address of the visitors to count the number of visits. The code that I am using for this is this function is used to capture the ip def get_ip(request): try: ip_forward = request.META.get('HTTP_X_FORWARDED_FOR') if ip_forward: ip = ip_forward.split(",")[0] print("returning forwarded for ip address", ip) elif request.META.get('HTTP_X_REAL_IP'): ip = request.META.get('HTTP_X_REAL_IP') print ("returning REAL_IP ", ip) else: ip = request.META.get('REMOTE_ADDR') print("returning remote address ", ip) except: ip= "" return ip after the above function is called on the index view it is then passed to this function for storing the ip def visitor_count(ip): visitor = VisitorCount() visitor.ip = ip visitor.date_of_record = datetime.now() if VisitorCount.objects.all().filter(ip = visitor.ip ,date_of_record__icontains= datetime.today().date()).exists(): pass print("the ip", visitor.ip,"recorded on", visitor.date_of_record ,"already exists and wil not be saved") else: print('this is the ip address of the user that has been saved', visitor.ip) visitor.save() return "saved" as you can see it prints what it is doing. My site is hosted in heroku (if that metters). I went through some satckoverflow questions but could not find an ans to what I wanted to. Now suppose when I am going to the site, and …