Django community: Django Q&A RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
ImportError: Couldn't import Django having it installed
I'm trying to run a Django app on an Ubuntu VM but when I execute python manage.py runserver I get this error message: ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? The code is de default of a Django project, ie, try: from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?" ) from exc I've tried with all of the things described in this post (ie, I'm in a venv reciently created with django installed, checked the django installation, verified that PYTHONPATH is pointing to venv/lib/python3.8/site-packages, etc.) but I still have the error. Any idea? -
Django new entry fetching previous entry in Postgres and not creating a new one
This is my first time here, and I'm trying to develop an app for a personal project (journal app) using Django and Postgres. When I use the Shell method, I am able to create a new entry into a table defined in my Postgres DB. However, when using the browser method, it keeps retrieving the last entry in the DB instead of creating a new one. I tried calling the entry_id in my views.py file and made sure to call the save() method to save a new entry. But instead, it keeps fetching the latest entry from the DB. Any help and/or direction is highly appreciated by someone who's just learning. Misael VIEWS.PY from django.shortcuts import render, redirect from .models import Entry from .forms import EntryForm from django.urls import reverse def entry_form(request): latest_entry = Entry.objects.latest('id') latest_entry_id = latest_entry.id if latest_entry else None if request.method == 'POST': form = EntryForm(request.POST) if form.is_valid(): entry = form.save() # Save the form data to the database return redirect(reverse('journal:entry_success', kwargs={'latest_entry_id': entry.id})) # Pass the latest_entry_id as a parameter else: print('Form errors:', form.errors) else: form = EntryForm() return render(request, 'journal/entry_form.html', {'form': form, 'latest_entry_id': latest_entry_id}) def entry_list(request): entries = Entry.objects.all() return render(request, 'journal/entry_list.html', {'entries': entries}) def entry_success(request, … -
Display the value of current foreignkey in update form when limiting queryset choice
I have a model named TimeTable (as shown below). In my update form I want to display the current value of the foreignkey field (say 'mon_1'). Since I am limiting the foreignkey choices using queryset in my form, the current value isn't being displayed. So i set initial value of the field 'mon_1' as the current model instance's mon_1, but it does not work. What is the mistake I am doing #models.py class TimeTable(models.Model): standard_choice = ( ('Grade 1','Grade 1'), ('Grade 2','Grade 2'), ('Grade 3','Grade 3'), ('Grade 4','Grade 4'), ('Grade 5','Grade 5'), ('Grade 6','Grade 6'), ('Grade 7','Grade 7'), ('Grade 8','Grade 8'), ('Grade 9','Grade 9'), ('Grade 10','Grade 10'), ('Grade 11','Grade 11'), ('Grade 12','Grade 12'), ) section_choice = ( ('A','A'), ('B','B'), ('C','C'), ('D','D'), ) standard = models.CharField(max_length=256,choices=standard_choice) section = models.CharField(max_length=1,choices=section_choice) mon_1 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='mon_1_subject_teacher') mon_2 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='mon_2_subject_teacher') mon_3 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='mon_3_subject_teacher') mon_4 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='mon_4_subject_teacher') mon_5 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='mon_5_subject_teacher') tue_1 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='tue_1_subject_teacher') tue_2 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='tue_2_subject_teacher') tue_3 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='tue_3_subject_teacher') tue_4 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='tue_4_subject_teacher') tue_5 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='tue_5_subject_teacher') wednes_1 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='wed_1_subject_teacher') wednes_2 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='wed_2_subject_teacher') wednes_3 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='wed_3_subject_teacher') wednes_4 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='wed_4_subject_teacher') wednes_5 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='wed_5_subject_teacher') thurs_1 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='thurs_1_subject_teacher') thurs_2 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='thurs_2_subject_teacher') thurs_3 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='thurs_3_subject_teacher') thurs_4 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='thurs_4_subject_teacher') thurs_5 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='thurs_5_subject_teacher') fri_1 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='fri_1_subject_teacher') fri_2 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='fri_2_subject_teacher') fri_3 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='fri_3_subject_teacher') fri_4 = models.ForeignKey(Teachers,on_delete=models.CASCADE,related_name='fri_4_subject_teacher') … -
Is there a way to optimize the query for this piece of code؟
I want that when the user gets the messages of a page, the field **seen **of all unread messages should be set to True Is there a way to **improve **and **optimize **this code below? I have 4 table (user, room, message, seen) One user can have several rooms and one room can have several users A user can send several messages and a message can only be related to a specific user And one message can be seen by several users (seen table) models.py file: class User(models.Model): username = models.CharField(max_length=255, unique=True) sso_id = models.BigIntegerField(null=True) is_active = models.BooleanField(default=False) date_join = models.DateTimeField(auto_now_add=True) is_admin = models.BooleanField(default=False) def __str__(self): return f"{self.username}|{self.is_admin}" class Room(models.Model): name = models.CharField(max_length=255) users = models.ManyToManyField(User, related_name="rooms") def __str__(self): return f"{self.name}" class Message(models.Model): content = models.TextField() seen = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="messages") room = models.ForeignKey(Room, on_delete=models.CASCADE, related_name="room_messages") replied_to = models.ForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL) def __str__(self): return f"{self.user.sso_id}: {self.content} [{self.created_at}]" class Seen(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) message = models.ForeignKey(Message, on_delete=models.CASCADE, related_name="seens") date_seen = models.DateTimeField(auto_now_add=True) views.py file: class MessageViewSet(GenericViewSet, ListModelMixin, RetrieveModelMixin, DestroyModelMixin): def list(self, request, *args, **kwargs): queryset = self.get_queryset() if self.kwargs.get("room_pk"): queryset = queryset.filter(room_id=self.kwargs.get("room_pk")) filter_queryset = self.filter_queryset(queryset) page = self.paginate_queryset(filter_queryset) if page is not None: serializer … -
Django test multiple databases managed and unmanaged
My setup: one managed database for "django-stuff" (auth, admin, contenttypes, sessions) one unmanaged database for the company_db I am trying to create a test databases for both. Django only sets up the test database for the company_db and adds the tables from django-stuff to that db. It does not add the company_db tables to the django_test_company_db. I was hoping django would create an im memory database for django-stuff and create a sql database django_test_company_db with the tables of the company_db model. # test_stuff.py from django.test import TestCase class TestStuffClass(TestCase): databases = ['default', 'company_db'] def test_post_01(self): pass # settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / CONFIG('SQLITE_LOCATION', default='') / 'db.sqlite3', }, 'company_db': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'company_db', 'USER': 'username', 'PASSWORD': '', 'HOST': db_host, 'PORT': db_port, 'TEST': {'NAME': 'django_test_company_db'}, }, } DATABASE_ROUTERS = [ 'api.dbrouter.AuthRouter', 'api.dbrouter.company_db_router', ] TEST_RUNNER = 'api.test.runner.UnManagedModelTestRunner' I added a custom test runner to switch the model meta fields to managed = True from django.test.runner import DiscoverRunner class UnManagedModelTestRunner(DiscoverRunner): def setup_test_environment(self,**kwargs): from django.apps import apps get_models = apps.get_models self.unmanaged_models = [m for m in get_models() if not m._meta.managed] for m in self.unmanaged_models: m._meta.managed = True super().setup_test_environment(**kwargs) def teardown_test_environment(self, *args, **kwargs): super().teardown_test_environment(**kwargs) for m in self.unmanaged_models: m._meta.managed … -
How to retrieve the first object for each set of values in a django filter operation?
I'm running a django 1.29 app on a postgresql database. I have a model similar to this: class DataFile(models.Model): user = models.ForeignKey('data.User', verbose_name='Data View') period = models.ForeignKey('data.Period', verbose_name='Period') category = models.ForeignKey('data.Period', verbose_name='Period') created = models.DateTimeField(auto_now_add=True,null=True) My code is currently retrieving objects that the program needs as this: pending_ids = pending_files.values_list("id", flat=True).distinct() my_data = pending_files.values_list("user_id","category_id","period_id") import_files_pending=[] for u, c, p in pending_bu_way_period: last_file_bpw = DataFile.objects.filter(user_id=u, period_id=p,category_id=c).order_by('-created').first() if last_file_bpw and last_file_bpw.id in pending_ids: import_files_pending.append(last_file_bpw) But is very inefficent, so I tried refractoring and came up with this: import_files_pending2 = DataFile.objects.filter(id__in=pending_ids,user_id=my_data.values_list("user_id", flat=True), category_id__in=my_data.values_list("category_id", flat=True), period_id__in=my_data.values_list("period_id", flat=True)).order_by('user_id', 'period_id', '-created').distinct("from_who_id", 'period_id') But it appears to retrieve much more objects other than the ones I need. What am I doing wrong? Why is my refractoring giving different results? For what I understand, my query is not retrieving only the first instance for the other values' combination, but any of them. -
Django with react router dont work and show empty page
I am using react inside django. I use npx create-react-app and npm run build to create react . The structure looks like this frontend main mysite In react I have two components. Form and App. App is the one that renders all other components. In settings I have configured frontend/build to be the templates. main/views.py def createUser(request): return render(request, 'index.html') main/urls.py from django.urls import path, re_path from . import views urlpatterns = [ path('register/', views.createUser), ] frontend/src/App.js import Form from './Form'; import { BrowserRouter as Router, Routes, Route} from 'react-router-dom'; <Router> <Routes> <Route exact path='/register' element={<Form/>} /> </Routes> </Router> When I go to /register I get a blank page with the css that I wrote for form.js but nothing else shows. -
How to resolve an InconsistentMigrationHistory in Django?
In our django project we had over 900 migrations and they were slowing down our tests. Due to complex interdependencies between apps, we decided that squashing wasn't a real option, so we wanted to reset them. However we have a couple of 3rd party apps as well (celery etc.) with their own migrations. After running python manage.py shell -c "from django.db import connection; cursor = connection.cursor(); cursor.execute(\"DELETE FROM django_migrations WHERE app IN ('api', 'user');\")" and makemigrations we are now trying to apply the migrations with --fake-initial. We are now getting the error django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency user.0001_initial on database 'default'. which makes sense as the database currently "thinks" that it has celery, admin etc. installed, but not user (even though it has). How could we work around this issue? Also we can't loose any data, otherwise I would just delete the migrations for this as well or reset the entire database. -
request.user returns AnonymousUser in Django
I'm trying to write a basic POST request that uses request.user but it sends an AnonymousUser, even though the request requires a token authentication to pass. views.py: @api_view(['POST', 'DELETE']) def like(request, id, *args, **kwargs): """ CRUD for a like """ # Called when a user swipes right if request.method == 'POST': print(request.user) payload = { 'source': request.user.id, 'target': id, } serializer = LikeSerializer(data=payload) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) When I run print(request.user), I get in the output: AnonymousUser -
AttributeError: 'IntegerField' object has no attribute 'is_hidden'
I am trying to constraint the input for salary in the forms from taking negative values, that's why I am avoiding to use Numberinput(), but using IntegerField() is giving me the following error AttributeError: 'IntegerField' object has no attribute 'is_hidden' Sharing Forms.py class EmployeeForm(forms.ModelForm): class Meta: model = Employee exclude = ['created_at', 'updated_at'] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['salary'].validators.append(MinValueValidator(0)) widgets = { 'name': forms.TextInput(attrs={'class': 'form-control'}), 'phone': forms.TextInput(attrs={'class': 'form-control'}), 'gender' : forms.Select(choices=GENDER_CHOICES, attrs={'class': 'form-control'}), 'dob': CustomDateInput(attrs={'class': 'form-control'}, min_date='1964-01-31', max_date='2002-12-31'), 'doj': CustomDateInput(attrs={'class': 'form-control'}, min_date='1990-01-01', max_date = datetime.now().date().strftime('%Y-%m-%d')), 'address': forms.TextInput(attrs={'class': 'form-control'}), 'city': forms.Select(choices=CITY_CHOICES, attrs={'class': 'form-control'}), 'state': forms.Select(choices=STATE_CHOICES, attrs={'class': 'form-control'}), 'team': forms.TextInput(attrs={'class': 'form-control'}), 'salary': forms.IntegerField(), } I want Salary in the forms to only take integer values -
django 2nd html page not visible
I am resently develop an website as a beginer and got the error like. expected page is not loading instred of 404(page not found) error is showing. we expect another contact.html page to be visible here. that page defined in another specific html file. -
Django error : the format for date objects may not contain time-related format specifiers (found 'H')
I'm trying to display the date of birth in a French format, everything works fine on my PC, but when copying the same project on another computer and running it, I had this error under the date of birth (even if I changed nothing in the code) : Django error : the format for date objects may not contain time-related format specifiers (found 'H') Here is my code : settings.py: # Format : day month year DATETIME_FORMAT = ('d F Y') template.html: <body> {% load i18n %} {% language 'fr' %} .... <td>{{ i.birthday|date:"DATETIME_FORMAT"|title }}</td> ... {% endlanguage %} </body> Is the problem with the browser ? or should I install some library ? -
Django model with properties that come from an external API
I want to have properties on a model that come from an external API. I also want to leave those properties blank when the ORM loads an instance of the model so that queries within the ORM aren't making API requests unless explicitly asked. It'd be nice if I could call a function on the model to retrieve those external properties, maybe something like .with_external(). How could I achieve this? Here's what I'm starting with: class Project(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=255, null=True, blank=True) @property def external_id(self): external_id = requests.get({API_URL}) return external_id -
Docker Nginx Django [emerg] host not found in upstream /etc/nginx/conf.d/nginx.conf
I'm new to web applications landscape and just trying to deploy a basic Django application with Gunicorn, Nginx and podman (version 4.4.1) on Red Hat Linux Enterprise 8.7. Dockerfile for Nginx is the official image from Docker Hub v 1.25.1. There's no docker-compose/podman-compose available on the server. I'm starting the build by creating a dedicated network: podman network create testapp-net The next component is Django application: podman build -t testapp-django -f src/testapp-django/compose/django/Dockerfile . Dockerfile for the app is based on Ubuntu base image and I'm exposing port 8000: FROM ubuntu:22.04 ... RUN addgroup --system django \ && adduser --system --ingroup django django ... WORKDIR /app ... RUN chmod +x /app ... EXPOSE 8000 ... COPY src/testapp-django/compose/django/entrypoint /entrypoint RUN sed -i -e 's/^M$//' /entrypoint RUN chmod +x /entrypoint RUN chown django /entrypoint COPY src/testapp-django/compose/django/start /start RUN sed -i -e 's/^M$//' /start RUN chmod +x /start RUN chown django /start RUN chown -R django:django /app USER django ENTRYPOINT ["/entrypoint"] /entrypoint: set -o errexit set -o pipefail set -o nounset exec "$@" /start: set -o errexit set -o pipefail set -o nounset python3 /app/manage.py migrate gunicorn testapp.wsgi:application --bind 0.0.0.0:8000 --chdir=/app Starting the Django app is successful: podman run -d -p 8010:8000 --name testapp-django … -
Which frame work to use to build a web app [closed]
I have a desktop application that used to work with the tkinter package. But I need to turn it into a web application, so I have to rewrite it. I don't know which framework to choose between Django, Turbogears, Web2py and Cubicweb, as I'm not familiar with any of them. My application has 4 pages, the home page and 3 other pages accessible via buttons on the home page. These tabs contain large graphs in the form of a network and a map with numerous filters, everthing is built using data loaded when the application is launched (the data are loaded using an url link). The application also features images, help buttons that open a help pdf, and buttons to return to the home page. I have no idea which framework would be best suited to my problem and at the same time the easiest to use. From what I've read, I'd go for Django, even if it's a bit complex, especially as there are lots of tutorials on youtube. Thanks ! -
Django and react router shows blank page without content
I am using react inside django. I use npx create-react-app and npm run build to create react . The structure looks like this frontend main mysite In react I have two components. Form and App. App is the one that renders all other components. In settings I have configured frontend/build to be the templates. main/views.py def createUser(request): return render(request, 'index.html') main/urls.py from django.urls import path, re_path from . import views urlpatterns = [ path('register/', views.createUser), ] frontend/src/App.js import Form from './Form'; import { BrowserRouter as Router, Routes, Route} from 'react-router-dom'; <Router> <Routes> <Route exact path='/register' element={<Form/>} /> </Routes> </Router> When I go to /register I get a blank page with the css that I wrote for form.js but nothing else shows. -
I don't understand why the code is not working
here is the error: >>> from blog.models import Post >>> user = User.objects.get(username='admin') Traceback (most recent call last): File "<console>", line 1, in <module> NameError: name 'User' is not defined >>> here is the model: from django.db import models from django.utils import timezone from django.contrib.auth import get_user_model User = get_user_model() class Post(models.Model): class Status(models.TextChoices): DRAFT = 'DF', 'Draft' PUBLISHED = 'PB', 'Published' title = models.CharField(max_length=250) slug = models.SlugField(max_length=250) author = models.ForeignKey( User, on_delete=models.CASCADE,related_name='blog_posts' ) body = models.TextField() publish = models.DateTimeField(default=timezone.now) created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) status = models.CharField(max_length=2,choices=Status.choices,default=Status.DRAFT) class Meta: ordering = ['-publish'] indexes = [models.Index(fields=['-publish']),] def __str__(self): return self.title I tried to change this part of the code ' 'to this 'from django.contrib.auth.models import User' but it did not help -
Django React Heroku
I have this problem {status: 'PARSING_ERROR', originalStatus: 200, data: '<!doctype html><html lang="en"><head><meta charset…pp.</noscript><div id="root"></div></body></html>', error: SyntaxError: Unexpected token '<', "<!doctype "... is not valid JSON} data : "<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"/><link rel=\"icon\" href=\"favicon.ico\"/><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"/><meta name=\"theme-color\" content=\"#000000\"/><meta name=\"description\" content=\"Chisfis | Online Booking – a responsive React template theme with Online booking, Real Estate, and booking system for accommodation, tours, travel experiences, cruises, car rentals, real estate, and travel agencies\"/><link rel=\"apple-touch-icon\" href=\"./logo192.png\"/><link rel=\"manifest\" href=\"./manifest.json\"/><title>Chisfis || Hotel booking Template</title><script defer=\"defer\" src=\"/static/js/main.6b24de68.js\"></script><link href=\"/static/css/main.c71aaa5c.css\" rel=\"stylesheet\"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id=\"root\"></div></body></html>" error : "SyntaxError: Unexpected token '<', \"<!doctype \"... is not valid JSON" originalStatus : 200 status : "PARSING_ERROR" [[Prototype]] : Object How do solve this problem? -
ckeditor don't appear in django form
I designed a web with Django . I use CKEditor for content of a model but after I connected my site to bucket storage, box CKA editor disappeared and won't upload so I can upload text, what's the problem? enter image description here what do I do? -
List view for user specific data?
I am a beginner in django . I am trying to get build a notesapp, but when a user logged in they are able to see all the all notes that are present in the admin panel. when I tried the below view function im just getting a blank page.How to write a view function such that a particular user can see the notes only they made . I have the following views.py @login_required(login_url='login') def Viewall(request): notes = NotesModel.objects.filter(user=request.user).all() return render(request, "Viewall.html", {'notes':notes}) models.py class NotesModel(models.Model): user=models.ForeignKey(User,on_delete=models.CASCADE,null=True) title=models.CharField(max_length=255,unique=True) note=models.TextField() time=models.DateTimeField(auto_now_add=True) viewall.html {% for data in notes %} <div class="col"> <div class="card note_card"> <h5 class="card-header">{{ data.title }}</h5> <div class="card-body"> <h5 class="card-title"></h5> <p class="card-text">{{ data.note|truncatechars:50}}</p> </div> </div> </div> {% endfor %} -
How to set download directory?
def download_video(url, save_path): loader = instaloader.Instaloader() try: post = instaloader.Post.from_shortcode(loader.context, url.split("/")[-2]) video_url = post.video_url response = requests.get(video_url, stream=True) if response.status_code == 200: with open(save_path, 'wb') as file: response.raw.decode_content = True shutil.copyfileobj(response.raw, file) print("Video downloaded successfully!") else: print("Failed to download the video.") except Exception as e: print("Failed to download the video:", str(e)) I created this function to download instagram video from it's url, i add this on my website. Problem: Its was working fine when i wasn't using on my website, i want it available for everyone online, Error : Failed to download the video: [Errno 13] Permission denied, How can i fix it, so that it can download in users downloads folder and on mobile. Thanks help me to solve the error. -
ImproperlyConfigured: settings.DATABASES error in Django project
I made simple reservation website in django. And It works just fine in dedicated server but it returns this error when i try to migrate it in local machine. django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details. I haven'touched anything in DATABASES. So it looks like this DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "db.sqlite3", } } Is there any possible solution for this problem? I've tried some solutions that i found online such as adding from .database import * But it didn't work at all for me. -
converting HTML to PDF using wkhtmltopdf Python
I am converting HTML to PDF. PDF downloaded success but it return blank pdf pages not showing any converted content. in my HTML file have Shopify CSS links. if convert minimum content HTML file then it converted correctly from django.shortcuts import render from django.http import HttpResponse import pdfkit from django.conf import settings def convert_html_to_pdf(request): if request.method == 'POST': rendered_template = render(request, 'newundergrace.html') HTML file options = { 'enable-local-file-access': '', 'orientation': 'landscape', 'page-size': 'Letter', 'page-size': 'A4', 'margin-top': '0', 'margin-right': '0', 'margin-bottom': '0', 'margin-left': '0', 'dpi': 96, } rendered_content = rendered_template.content.decode('utf-8') pdf = pdfkit.from_string(rendered_content, False, options=options) response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename=output.pdf' response.write(pdf) return response return render(request, 'index1.html') -
Docker, Django(gunicorn) + Nginx | django's admin CSRF 403 error
I confused this situations. :( I want to run Docker compose Django + Nginx at AWS EC2/ALB the docker compose and nginx.conf, AWS setup is below, django is gunicorn example_mvp.wsgi -b 0.0.0.0:8000 then, nginx listen 80 to proxy_pass http://example_mvp:8000 nginx.conf http { server { listen 80; include /etc/nginx/mime.types; client_max_body_size 16M; location /favicon.ico { return 204; access_log off; log_not_found off; } location /static/ { alias /staticfiles/; } location / { proxy_pass http://example_mvp:8000; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } } AWS EC2, security group inbound 80,443 port open. and AWS ALB setup, (generate domain SSL via AWS Certificate Manager) 1. https:443 -> http:80 2. http:80 -> redirect:443 so, my domain connect ALB. problems I access the admin page, but CSRF 403 error. my product's settings attach the CSRF_TRUSTED_ORIGINS settings.py DEBUG = False CSRF_TRUSTED_ORIGINS = ["https://mydomins.com"] but access admin page or POST forms, always return 403 error. I check the ALB setup, 2. http:80 -> http:80, and access admin page ok. (not 403 error) I don't know what's the problems -
How to Subcribe to an update of database django
When using Django model, I have an table name "AppConfig". What I want is that whenever there is an update on AppConfig table (inluding create,modify,delete) the result will log into a file. Is there an convenient way to do it. I can do this by adding log function to every point that I update the Config table in code. But it is quite messy and there is potential of mistake.