Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Set up connection to VPN on Amazon Lightsail app
I've got an server on AWS using Lightsail that uses Linux/Django OS/app combination. I need to use the Django framework to create a function that will take requests coming into the server, and forward them on to another API. This API is only accessible through a VPN. I believe that by just connecting my OS to the VPN any requests my Django app sends should go through the VPN (in theory, please correct me if I'm wrong), however I am unsure how to connect to the VPN using just the Linux command line. I have the server name, a username and password, which I can connect to fine on my Windows machine by just adding a VPN connection. Is anyone able to advise if it is possible to connect this OS provided by Amazon Lightsail to a VPN, and if so how to do so in order for me to able to route HTTPS requests to the API behind a VPN! Thanks, hopefully I'm posting this in the right place! -
Push rejected, failed to compile Python app on Heroku
I'm trying to deploy a Django app to Heroku, it starts to build, download and installs everything, but that's what I get when it comes to 'Collectstatic environment variables': ****** Collectstatic environment variables: PYTHONUNBUFFERED=1 PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config: DEBUG_COLLECTSTATIC=1 BPLOG_PREFIX=buildpack.python PWD=/tmp/build_5f41d4f4 HOME=/app LANG=en_US.UTF-8 SOURCE_VERSION=ff7fb8a801cfb1de3d7b84e14312dbe284946333 REQUEST_ID=f6aa81af-75e0-afbc-a547-0f055efec989 ENV_DIR=/tmp/d20220120-46-2ziyj3 PYTHONPATH=. CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include: BIN_DIR=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib: SHLVL=1 LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib: PIP_NO_PYTHON_VERSION_WARNING=1 BUILDPACK_LOG_FILE=/dev/fd/3 STACK=heroku-20 BUILD_DIR=/tmp/build_5f41d4f4 CACHE_DIR=/tmp/codon/tmp/cache PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin::/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/vendor/ EXPORT_PATH=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin/../export C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include: DYNO=run.3282 PROFILE_PATH=/tmp/build_5f41d4f4/.profile.d/python.sh OLDPWD=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136 _=/usr/bin/env ! Push rejected, failed to compile Python app. ! Push failed This is my settings.py file: from pathlib import Path import os # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-%d8=4wbz@n20@d6%4#0cw&)d&*ozxu#+$ctv$)mioc_tw(&-=0' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False ALLOWED_HOSTS = ['dwek-portfolio.herokuapp.com', '127.0.0.1'] # Application definition INSTALLED_APPS = [ 'blog', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', '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', ] ROOT_URLCONF = 'my_site.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ BASE_DIR / "templates" ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'my_site.wsgi.application' # Database … -
Using related_name in Django
I am getting confused with the usage of related_name in django models, i know that the idea is to give me access to all the fields of a different table with foreignkey i am just not sure how to use it. My model.py: class Component(MPTTModel): name = models.CharField(max_length=100) manufacturer = models.CharField(max_length=100) model = models.CharField(max_length=100) serial_number = models.CharField(max_length=255) price = models.IntegerField() note = models.TextField() image = models.ImageField(blank=True, null=True, upload_to='components_imgs') parent = TreeForeignKey("self", verbose_name=( "Parent Component"), blank=True, null=True, related_name='children', on_delete=models.CASCADE) def __str__(self): return f"{self.id}, {self.name}" class Job(models.Model): job_type = ( ('I', 'Interval'), ('O', 'One time'), ) name = models.CharField(max_length=100) description = models.CharField(max_length=100) type = models.CharField(max_length=1, choices=job_type) interval = models.IntegerField() is_critical = models.BooleanField() due_date = models.DateField() component = models.ForeignKey( Component, related_name='jobs', on_delete=models.CASCADE) runninghours = models.ForeignKey( RunningHours, related_name="RHjobs", on_delete=models.CASCADE) def __str__(self): return self.name my view.py: def worklist(request): components = Component.objects.all() Component_jobs = components.jobs.all() context = {"component":components, "Component_jobs":Component_jobs} return render(request,"worklist.html",context) I am trying to understand why these lines give me an error 'TreeQuerySet' object has no attribute 'jobs' components = Component.objects.all() Component_jobs = components.jobs.all() but these lines work just fine, component = Component.objects.all() component_id = Component.objects.get(id=pk) job_id = component_id.jobs.all() are they not the same but with one i am getting all the jobs for a … -
How can I make packages installed using Poetry accessible in Docker?
I have a Django REST framework API that I'm trying to run in Docker. The project uses Poetry 1.1.12. When running, I can see that Poetry is installed correctly, and that Poetry installs the packages in my pyproject.toml, including Django. I'm using supervisor to run the API using Daphne, as well as some other tasks (like collecting static files). However, when supervisor runs the app, I get: Traceback (most recent call last): File "/home/docker/api/manage.py", line 22, in <module> main() File "/home/docker/api/manage.py", line 13, in main raise ImportError( 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? Traceback (most recent call last): File "/home/docker/api/manage.py", line 11, in main from django.core.management import execute_from_command_line ModuleNotFoundError: No module named 'django' Notice how I set POETRY_VIRTUALENVS_CREATE=false and ENV PATH="/root/.local/bin:${PATH}". According to the poetry installation script, that is the path that needs to be added to PATH. Here is an abridged versioned of my Dockerfile: FROM python:3.9-slim-buster ENV PATH="/root/.local/bin:${PATH}" RUN apt-get update && apt-get install -y --no-install-recommends \ ... \ curl \ supervisor \ && curl -sSL 'https://install.python-poetry.org' | python - && poetry --version \ && apt-get remove -y curl \ … -
Communicate with a specific client [JS/PY]
I use angular client side (TS) and Django server side (PY). Unfortunately despite what I find on the internet, I can't send a message to a SPECIFIC client from the server. Socket.io doesn't exist in PY, I've seen the websockets but that only talks about sending a message to ALL clients in a group. But if I want to send a message only to a client B I don't see how to do it. Please help me, and guide me on the solution to use PS: I'm starting with the PY backend, be indulgent. Thank you. -
Django error: TypeError at /forums/ 'str' object is not callable
I am making a Django forums project and I have run into this issue. whenever I go to my forum page I see this error: TypeError at /forums/ 'str' object is not callable. If anyone knows how to fix this I would appreciate the help. forms: from django import forms from . import models class ForumForm(forms.ModelForm): class Meta: model = models.Post fields = ('message',) models from django.db import models # Create your models here. class Post(models.Model): message = models.TextField(blank=True, null=False) created_at = models.DateTimeField(auto_now=True) URLs from django.contrib import admin from django.urls import path, include from . import views app_name = 'forums' urlpatterns = [ path('', views.ForumForm.as_view(), name='forum') ] views from django.shortcuts import render from django.urls import reverse_lazy from django.views import generic from . import forms # Create your views here. class ForumForm(generic.CreateView): template_name = 'forums_simple/forum.html' form_class = 'ForumForm' success_url = '/' def form_vaild(self, form): self.object = form.save(commit=False) self.object.save() return super().form_vaild(form) -
Django isn't evaluating template variables
When I inspect the page I see: post="{% url daySlots %}" But Im expecting to see this evaluated to: post="/daySlots/" Its also ignoring other variables, the html shows the variable name like: {{ duration }} instead of the value like 1.5 that Im expecting. in my views.py the html code is generated in a function like: html_cal = Calendar(today.year, today.month, day_colors) context = { "html_cal": mark_safe(html_cal) } response = render(request, "pages/book.html", context) book.html looks like {% block content %} <div class="row"> {{ html_cal }} </div> {% endblock content %} The Calendar function also has some formatted text like: td = f"post=\"{{% url daySlots %}}\" Any ideas on how to get Django to recognize the variables within the html? -
How can I mock django model object?
For example, I have many interrelated tables in my project class A(models.Model): name = models.models.CharField(max_length=16) class B(models.Model): name = models.models.CharField(max_length=16) a = models.ForeignKey(A, on_delete=models.CASCADE) class C(models.Model): name = models.models.CharField(max_length=16) b = models.ForeignKey(B, on_delete=models.CASCADE) and so on. I need to test model C and have no interest in A and B models. Is there any chance to mock model B that can be used when creating model C objects? I mean I'd like to create few objects without building a massive test base to test one tiny model. -
Chromedriver not opening Django development server
I am formulating my first tests with Selenium and Chromedriver. I kept getting a NoSuchElementException in my test results. I tried to using an explicit wait but it timed out. I noticed that Chrome was raising ERR_FILE_NOT_FOUND so I made the path more explicit in my driver.get(file_uri()). Chrome found the html but was displaying my pure Django code instead of the generated html. If the development server was being launched properly I believe my test would be passing but I have no idea why it's not functioning as expected. Here is my test: class WebpageTests(unittest.TestCase): def test_title(self): driver.get(file_uri("network/templates/network/index.html")) open_form = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "new-post"))) open_form.click() form = driver.find_element_by_id("post-view") self.assertTrue(form.is_displayed()) if __name__ == "__main__": unittest.main() here is my setup: from sqlite3 import Timestamp from xxlimited import foo from django.test import Client, TestCase from .models import Post, User from selenium import webdriver import os import pathlib import unittest from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By def file_uri(filename): return pathlib.Path(os.path.abspath(filename)).as_uri() driver = webdriver.Chrome() Thank you in advance for your help! -
Django how to save User Model?
Good day again, so I have a form and a user can add multiple titles. Each submit will create a new object which includes the written title and the user who wrote it(submitted the form). I tried it with this but I don't know what to add in NewTitle.objects.create(title=title, ...) \views.py def title_view(request): try: profile = request.user.newtitle except NewTitle.DoesNotExist: profile = NewTitle(user=request.user) if request.method == 'POST': form = NewTitleForm(request.POST, instance=profile) if form.is_valid(): title = form.cleaned_data["title"] NewTitle.objects.create(title=title) #in the () I have to add the user= aswell return redirect('/another') else: form = NewTitleForm(instance=profile) return render(request, 'test.html', {'form': form, 'profile': profile}) \models.py class NewTitle(models.Model): user = models.OneToOneField( User, default=None, null=True, on_delete=models.CASCADE) title = models.CharField(max_length=200) I am working with basic User model. Currently, a user can submit the form and a new object will create just with the given title but without the user who wrote it because I just added title=title and not user=... Any ideas? -
Out of memory: Killed process (gunicorn) on AWS Lightsail
I am hoping someone can give me some direction on how to determine what is causing this out of memory to continue to occur. I am a novice in this arena, so any help will greatly be appreciated. I have a Django app using Gunicorn, Ngnix, PostgreSQL. I am also using Supervisor to monitor the app. If I reboot the sever it restarts the app automatically...no issues. The app was built using Flask prior to this and I never experienced this issue. Both apps had the following AWS: AWS Lightsail 512 MB Memory 1 Core Processor 20 GB SSD Disk 1 TB Transfer* Here are lines from the gunicorn error log: [2022-01-20 02:06:15 +0000] [723] [INFO] Booting worker with pid: 723 [2022-01-20 02:06:15 +0000] [724] [INFO] Booting worker with pid: 724 [2022-01-20 02:06:15 +0000] [725] [INFO] Booting worker with pid: 725 [2022-01-20 07:43:42 +0000] [708] [CRITICAL] WORKER TIMEOUT (pid:723) [2022-01-20 07:49:11 +0000] [708] [CRITICAL] WORKER TIMEOUT (pid:724) [2022-01-20 07:49:11 +0000] [708] [CRITICAL] WORKER TIMEOUT (pid:725) [2022-01-20 02:49:11 -0500] [724] [INFO] Worker exiting (pid: 724) [2022-01-20 02:49:11 -0500] [725] [INFO] Worker exiting (pid: 725) [2022-01-20 07:49:11 +0000] [708] [WARNING] Worker with pid 723 was terminated due to signal 9 [2022-01-20 07:49:11 … -
Is it possible to use django with asgi and mantain some sync views?
Now I have an application running under wsgi protocol, and now we are thinking about make a transition to the asgi protocol. The doubt we have to solve to make this decision is if it's possible run django under asgi and keep some views as sync. Could anyone help me? -
Django Factory Boy loop return same value
I'm trying to generate fake objets from loop but always returns the same objet utilities.py: ... for _ in range(number_objects): try: element = app_factories.UserFactory() print(element) except Exception as e: print(e) print(type(e)) ... factories.py from faker import Faker from factory.fuzzy import FuzzyChoice from factory.django import DjangoModelFactory fake = Faker(['es-ES']) class UserFactory(DjangoModelFactory): name = fake.name() email = '{}@mailcom'.format(slugify(name)) height = fake.numerify(text='1##') friend = FuzzyChoice(app_models.User.objects.all()) class Meta: model = app_models.User Probably it will be from the seed or generator but I don't know how to solve it. Anybody could help me please ? Thanks in advance. -
Django get primary key with JSON response
How do I send each objects primary key with JSON response? I am sending json response to amend a table based on users state. Everything works fine, except not being able to get the PK associated with each user. Currently its sending all values except PK. class UserByState(View): page_limit = 100 def get_paginated_context(self, queryset, page, limit): if not page: page = 1 if limit: self.page_limit = limit paginator = Paginator(queryset, self.page_limit) page_obj = paginator.get_page(page) serialized_page = serialize("json", page_obj.object_list) serialized_page = [obj["fields"] for obj in json.loads(serialized_page)] return { "data": serialized_page, "pagination": { "page": page, "limit": limit, "has_next": page_obj.has_next(), "has_prev": page_obj.has_previous(), "total": queryset.count() } } def get(self, request, *args, **kwargs): user = self.request.user page = request.GET.get('page') limit = request.GET.get('limit') state = request.GET.get('state') queryset = User.objects.all() if state and state != "all": queryset = queryset.filter(state=state) to_return = self.get_paginated_context(queryset, page, limit) return JsonResponse(to_return, status = 200) -
Not getting correct output in django filter
I have following models. class Stocks(models.Model): ticker = models.CharField(max_length=30, primary_key=True, unique=True) company_name = models.CharField(max_length=100, blank=True, null=True) ... class Advice(models.Model): ticker = models.ForeignKey(Stocks, db_column='ticker', related_name='advices', on_delete=models.CASCADE) advice_date = models.DateField(blank=True, null=True) ... class Recommendation(models.Model): ticker = models.ForeignKey(Stocks, db_column='ticker', related_name='recommendation', on_delete=models.CASCADE) target = models.FloatField(blank=True, null=True) I want to fetch details where Advice.advice_date is latest. but following code gives me all records from advice reco = Recommendation.objects.all().values('ticker__advices__advice_date').filter(ticker__advices__advice_date=datetime.date(2022,1,19)) print(reco) this is what I get: <QuerySet [{'ticker__advices__advice_date': datetime.date(2022, 1, 10)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 11)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 12)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 13)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 14)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 17)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 18)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 19)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 10)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 11)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 12)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 13)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 14)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 17)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 18)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 19)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 10)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 11)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 12)}, {'ticker__advices__advice_date': datetime.date(2022, 1, 13)}, '...(remaining elements truncated)...']> this is what I need: <QuerySet [{'ticker__advices__advice_date': datetime.date(2022, 1, 19)}] -
Django FileField upload_to custom function error
I have created a custom utility function for Django FileField's upload_to parameter. This function accepts a prefix and returns a function that actually accepts instance and filename. But when I run manage.py makemigrations, the command throws ValueError. I have included the related files/data below. secret_upload function import uuid def secret_upload(prefix): def _path(instance, filename): file = filename.split(".") fuuid = uuid.uuid4() if len(file) == 1: filename = f"secrets/{prefix}/{file[0]}-{fuuid}" elif len(file) == 2: filename = f"secrets/{prefix}/{file[0]}-{fuuid}.{file[1]}" return filename return _path Django Model class SecretData(models.Model): name = models.CharField(max_length=100) secret_file = models.FileField(upload_to=secret_upload("files")) makemigrations error traceback (most recent call last): File "D:\Python\projects\keep-creds\keep_creds\manage.py", line 22, in <module> main() File "D:\Python\projects\keep-creds\keep_creds\manage.py", line 18, in main execute_from_command_line(sys.argv) File "D:\Python\projects\kc-venv\lib\site-packages\django\core\management\__init__.py", line 425, in execute_from_command_line utility.execute() File "D:\Python\projects\kc-venv\lib\site-packages\django\core\management\__init__.py", line 419, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "D:\Python\projects\kc-venv\lib\site-packages\django\core\management\base.py", line 373, in run_from_argv self.execute(*args, **cmd_options) File "D:\Python\projects\kc-venv\lib\site-packages\django\core\management\base.py", line 417, in execute output = self.handle(*args, **options) File "D:\Python\projects\kc-venv\lib\site-packages\django\core\management\base.py", line 90, in wrapped res = handle_func(*args, **kwargs) File "D:\Python\projects\kc-venv\lib\site-packages\django\core\management\commands\makemigrations.py", line 190, in handle self.write_migration_files(changes) File "D:\Python\projects\kc-venv\lib\site-packages\django\core\management\commands\makemigrations.py", line 227, in write_migration_files migration_string = writer.as_string() File "D:\Python\projects\kc-venv\lib\site-packages\django\db\migrations\writer.py", line 141, in as_string operation_string, operation_imports = OperationWriter(operation).serialize() File "D:\Python\projects\kc-venv\lib\site-packages\django\db\migrations\writer.py", line 99, in serialize _write(arg_name, arg_value) File "D:\Python\projects\kc-venv\lib\site-packages\django\db\migrations\writer.py", line 63, in _write arg_string, arg_imports = MigrationWriter.serialize(_arg_value) File "D:\Python\projects\kc-venv\lib\site-packages\django\db\migrations\writer.py", line 271, in serialize … -
Django include template no data
I am trying to include a file, into my base.html Inside the base, inn the base.html {% block content %} {% include "something.html %} {% endblock %} But nothing shows up from the included file, and I have tried to have blocks inn the something.html {% block content %} something something inside the something.html {% endblock %} I have also tried without using blocks, but nothing. -
W/IInputConnectionWrapper getTextBeforeCursor on inactive InputConnection error coming when calling Django API from flutter app submit button
This is Error : W/IInputConnectionWrapper( 5696): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): getSelectedText on inactive InputConnection W/IInputConnectionWrapper( 5696): getTextAfterCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper( 5696): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): endBatchEdit on inactive InputConnection I/TextInputPlugin( 5696): Composing region changed by the framework. Restarting the input method. W/IInputConnectionWrapper( 5696): getSelectedText on inactive InputConnection W/IInputConnectionWrapper( 5696): getTextAfterCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): getSelectedText on inactive InputConnection W/IInputConnectionWrapper( 5696): getTextAfterCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper( 5696): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): endBatchEdit on inactive InputConnection W/IInputConnectionWrapper( 5696): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper( 5696): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper( 5696): endBatchEdit on inactive InputConnection I/TextInputPlugin( 5696): Composing region changed by the framework. Restarting the input method. W/IInputConnectionWrapper( 5696): getTextBeforeCursor on inactive InputConnection * This is My Code : import 'package:fin_l/front.dart'; import 'package:fin_l/models/reg.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'dart:async'; import 'package:http/http.dart' as http; // Create a Form widget. class Registration extends StatefulWidget { const Registration({Key? key}) : super(key: key); @override MyCustomFormState createState() { return MyCustomFormState(); } } // Create a corresponding State class. // This class holds data related to the form. class MyCustomFormState extends State<Registration> { … -
Django embed/dispaly .pdf in page
I am attempting to display .pdfs that have been uploaded by users. I can display the path to the pdf but not document itself. I attempted to use "" in the template but this is not working. At least one issue is that the incorrect path to the document is used when the template is rendered. The correct file path is media/company1/documents/012022/document.pdf. The file path rendered in the template is: /documents/document/4/documents/012022/document.pd Here is my model: from django.db import models from constrainedfilefield.fields import ConstrainedFileField class Document(models.Model): title = models.CharField(max_length= 200) description = models.TextField() file = ConstrainedFileField( null=True, blank=True, upload_to='documents/%m%Y', content_types=['application/pdf'], max_upload_size=2097152, ) Here is my view: from django.shortcuts import render from django.urls import reverse_lazy from django.views.generic import ListView, DetailView, CreateView from .models import Document ... class CompanyDocumentsDetailView(DetailView): model = Document template_name = 'company_accounts/document_detail.html' ... Here is my template: <!-- templates/document_detail.html --> {% extends 'base.html' %} {% block content %} <div class="section-container container"> <div class="project-entry"> <h2>{{ document.title }}</h2> <p>{{ document.description }}</p> <p><embed src="{{document.file}}" type="application/pdf" height="700px" width="500"/></p> </div> </div> {% endblock content %} -
How to check for duplicate records in a Django admin inline?
How do you do perform validation checks involving multi-inline forms in Django admin inlines? For example, I have a simple Parent/Child model, with an admin interface showing the children in an inline table on the parent's admin change page. Each child has a "name" field which must be unique. On child model, I've implemented a clean() method to enforce this rule, raising a forms.ValidationError so the error is displayed in a user-friendly fashion in the admin UI. This method is called from the model's full_clean() method, which is called by Django admin during the validation step for each inline form. So, individually, if the user attempts to create a child record, that check caches the error. However, since Django runs the validation for each inline table separately before saving the records, it doesn't cache duplicates in the new data. So if the user creates two new inline rows and enters duplicate names in each of those rows, they pass the validation check, but then when Django goes to actually save the records, it encounters the exception, which is now handled like a very user-unfriendly 500 error. Is there an easy way to fix this? Looking through Django's code, I'm not … -
Restrict access to files from users except the superuser Django
I'm currently writing an app with Django and I want to restrict access to private files (except superuser). My files are served on Nginx For now, all the files request comes to the Django app and if the user has the right permission it will redirect to the Nginx to serve the file with the "X-Accel-Redirect" set in the Response: if user_has_right_permission or request.user.is_superuser: response = HttpResponse() response['X-Accel-Redirect'] = path return response else: raise PermissionDenied() These files need user authentication and to access each file user should send the token in the request header. The problem is when the superuser in the admin panel wants to download files got 403 Forbidden. because the token is not set in the request header. Can someone please tell me how to set the token in the request header when the superuser wants to download the file? Thanks. -
Can I manually feed the language code to Django gettext()?
I have a few strings in the backend I'd need to occasionally translate to other language before using them. I plan to save the user language selection into the database so it would be easy to get it from there. But, what is unclear for me, is if I implement localization and have a couple of different language files, how can I use the right language version? I can't read the language selection from cookies, url, user session etc. Can I use the language code from my database to choose which translation I'll use? -
Heroku / Django / MySQL : 2013 'Lost connection to MySQL server during query'
I've deployed a Django app to Heroku. The app works perfect in other environemnts, but in Heroku, one out of 5 request I got a Lost connection to MySQL server during query. I'm not hitting the app a lot, just testing it and it's unusable. I'm not sure where to start debugging this. I've added CONN_MAX_AGE = 60 to the django settings with the hope that keeping the connection alive would help, but no. -
App deployment failed via gcloud - 502 bad gateway
I have deployment my django app from Gcloud but when trying to open getting 502 bad gateway error. I checked the logs and found the below error message. I am unable to find the root cause of this. Please advise how to proceed. `2022-01-20 09:33:17 default[20220120t145947] [2022-01-20 09:33:17 +0000] [20] [INFO] Booting worker with pid: 20 2022-01-20 09:33:17 default[20220120t145947] [2022-01-20 09:33:17 +0000] [20] [ERROR] Exception in worker process 2022-01-20 09:33:17 default[20220120t145947] Traceback (most recent call last): File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/workers/gthread.py", line 92, in init_process super().init_process() File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/workers/base.py", line 119, in init_process self.load_wsgi() File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi self.wsgi = self.app.wsgi() File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 49, in load return self.load_wsgiapp() File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp return util.import_app(self.app_uri) File "/layers/google.python.pip/pip/lib/python3.9/site-packages/gunicorn/util.py", line 358, in import_app mod = importlib.import_module(module) File "/opt/python3.9/lib/python3.9/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1030, in _gcd_import File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File "", line 850, in exec_module File "", line 228, in _call_with_frames_removed File "/srv/main.py", line 1, in from OCRdJANGO_BETA_PROJECT.wsgi import application File "/srv/OCRdJANGO_BETA_PROJECT/wsgi.py", line 12, in … -
Is it necessary to have a model and inheritance in class based views?
class home(ListView): template_name='blog/base.html' This doesn't work and gives this error -- ImproperlyConfigured at / home is missing a QuerySet. Define home.model, home.queryset, or override home.get_queryset(). but when I create a model with no data class home(ListView): model = Post template_name='blog/base.html' This works perfectly fine -> In same way when I don't inherit ListView class home(): model = Post template_name='blog/base.html' It gives the following error in urls.py from django.urls import path,include from . import views from .views import home urlpatterns = [ # path('',views.home,name='blog-home'), path('',home.as_view(),name='blog-home') ] AttributeError: type object 'home' has no attribute 'as_view' I don't have any idea about both of these