Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
django-python3-ldap Auth only specific groups
Hoping someone can help me debug an issue I have using django-python3-ldap. I have been able to get authentication working but need to be able to only authenticate users that are in a specific AD Group ("BI - Admin" within MSBI), Here is my code that is working (for authenticating all users) Settings.py: `AUTHENTICATION_BACKENDS = ["django_python3_ldap.auth.LDAPBackend"] #AUTH_LDAP_SERVER_URI = "LDAP://SERVERNAME" LDAP_AUTH_URL = ["LDAP://SERVERNAME:389"] LDAP_AUTH_USE_TLS = False import ssl LDAP_AUTH_TLS_VERSION = ssl.PROTOCOL_TLSv1_2 LDAP_AUTH_SEARCH_BASE = "cn=users,dc=DOMAIN,dc=org" LDAP_AUTH_OBJECT_CLASS = "user" LDAP_AUTH_USER_FIELDS = { "username": "sAMAccountName", "first_name": "givenName", "last_name": "sn", "email": "mail", } LDAP_AUTH_USER_LOOKUP_FIELDS = ("username",) LDAP_AUTH_CLEAN_USER_DATA = "django_python3_ldap.utils.clean_user_data" LDAP_AUTH_SYNC_USER_RELATIONS = "django_python3_ldap.utils.sync_user_relations" from apprum.ldap_filters import custom_format_search_filters LDAP_AUTH_FORMAT_SEARCH_FILTERS = "apprum.ldap_filters.custom_format_search_filters" LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_active_directory_principal" LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = "domain.org"` ldap_filters.py : ` from django_python3_ldap.utils import format_search_filters def custom_format_search_filters(ldap_fields): #ldap_fields["memberOf"] = "BI - Admin" search_filters = format_search_filters(ldap_fields) # Advanced: apply custom LDAP filter logic. #search_filters.append("(|(memberOf=BI - Team))") #search_filters.append("(&(memberOf=cn=BI - Admin,OU=MSBI,DC=mookynet,dc=org))") # All done! print(search_filters) return search_filters ` **Structure of Active Directory:** Domain.org Groups |---MSBI |---BI - Admin Users |--- Adam.Wally "Adam.Wally" is a user in my test AD and a member of BI - Admin. So in theory that account should be authenticated.. Well, Thats what I am aiming for, If I uncomment ldap_fields["memberOf"] = "BI - Admin", I get … -
Invalid block tag on line 126: 'set', expected 'empty' or 'endfor'. Did you forget to register or load this tag?
i want to use {% set … } but it has problem is django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 126: ‘set’, expected ‘empty’ or ‘endfor’. Did you forget to register or load this tag? what should i do ? <div class="carousel-inner"> {% for knowledge in knowledges %} {% set count = 0 %} {% for photo in photo01s %} {% if photo.category01 == knowledge %} {% set count = count + 1 %} <div class="carousel-item {% if forloop.first %}active{% endif %}"> <div class="row"> <div class="card" style="background-image: url('{{ photo.image01.url }}');"></div> </div> </div> {% endif %} {% endfor %} {% endfor %} </div> i have tried several ways but it does not work. -
Send Zip as a response in Django Rest framework
I am creating Barcodes in an API inj both png as well as pdf format and then trying to compress them and send them as zip file in response, for that I am doing this: class DownloadBarcodeImageAPIViewV2(APIView): # permission_classes = (permissions.IsAuthenticated,) def convert_image_to_pdf(self, image_path): image = Image.open(image_path) pdf_path = os.path.splitext(image_path)[0] + '.pdf' image.convert('RGB').save(pdf_path) return pdf_path def get(self, request): obj_relative_url = self.request.user.company.branding_logo.document obj_url = obj_relative_url.url po_id = request.GET['po'] company = request.user.company.pk barcodes = CompanyBarcodes.objects.filter( po_id=po_id, company=company, ).prefetch_related('company', 'product', 'grn_id', 'asn_id', 'itemGroup') items = [] for i in barcodes: items.append({'bar': i.barcode, 'name': str(i.product.name) + " - " + str(i.product.sku)}) zip_buffer = io.BytesIO() # Create a BytesIO buffer to hold the zip file with zipfile.ZipFile(zip_buffer, 'a', zipfile.ZIP_DEFLATED, False) as zipf: for item in items: EAN = barcode.get_barcode_class('code128') d = {'module_width': 0.15, 'module_height': 2.0, 'quiet_zone': 0.5, 'text_distance': 1.5, 'font_size': 3, 'text_line_distance': 3, 'dpi': 900} w = ImageWriter(d) ean = EAN(item['bar'], writer=ImageWriter()) a = ean.save("{} - {}".format(item['name'], item['bar']), options=d) pdf_path = self.convert_image_to_pdf(a) zipf.write(pdf_path, os.path.basename(pdf_path)) # Add PDF to the zip file zip_buffer.seek(0) # Move the cursor to the beginning of the buffer zip_data = base64.b64encode(zip_buffer.getvalue()).decode() # Encode the zip buffer as base64 return HttpResponse(zip_data, content_type='application/zip') # Return the zip file in the response and the … -
persian slug in django urls in page start with persian slug address
when I use persian slug to get my post details I have a special problem.. in the pages with persian slug urls in the page start with corrent page address like this : in the page : example.com/سلام-دنیا when I click on the signUp button istead of this url: example.com/signUp is example.com/سلام-دنیا/signUp with english slug everything ok and working great and whole this proccess is ok in the my localhost but on the cpanel host This problem occurs. my urls.py posts app : `from django import urls from django.urls import path , re_path from . import views urlpatterns = [ path('', views.posts , name='posts'), path('new_post/', views.new_post , name='new_post'), re_path(r'(?P<slug>[^/]+)/?$', views.post, name="post"), ]` in my template: ` <a class="btn btn-sm btn-outline-secondary" href="{%url "login"%}">عضویت/ورود</a> my post function in views.py in posts app: import os from uuid import uuid4 from django.shortcuts import render , redirect from django.contrib import messages from config import settings from posts.forms import CommentForm, PostCreatorFrom from .decorators import user_is_superuser from posts.utils import paginatePosts, searchPosts from .models import Category, Comment, Post from django.core.paginator import Paginator from django.views.decorators.csrf import csrf_exempt from django.http import JsonResponse from pathlib import Path from urllib.parse import unquote from django.views.decorators.http import require_POST from django.utils.text import slugify from django.utils.encoding … -
Define return value after chained mocks
I am using unittest.mock to test my Django application. The set-up is the following: I want to test a function foo foo uses a method X which is a constructor from an external package X is called in foo with some parameters argsA to return an object x x.create_dataset is called in foo with some parameters argsB to return an object ds ds.load is called in foo with some parameters argsC to store data in ds.data ds.data is manipulated (merge, agg...) in foo to create the return value of foo I want to test that the function foo works as expected, knowing the return values of the other functions calls given argsA, argsB, argsC. At the moment, I can't even run my test as I have a TypeError when ds.data is being manipulated : TypeError: expected pandas DataFrame or Series, got 'MagicMock' -
How to use multiple databases in a single Django app?
I'm trying to set up my Django application to use multiple databases within a single app. I have defined different database in my settings.py I have only one app polls. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mypage', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '3306', }, 'ringi_db':{ 'ENGINE': 'django.db.backends.mysql', 'NAME': 'ringi', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '3306', }, } I have added mapping in settings.py DATABASE_APPS_MAPPING = { 'ringi':'ringi_db', } database router is defined like this class dbrouter: def db_for_read(self, model, **hints): if model._meta.app_label == 'ringi': return 'ringi_db' else: return None def db_for_write(self, model, **hints): if model._meta.app_label == 'ringi': return 'ringi_db' else: return None def allow_relation(self, obj1, obj2, **hints): if obj1._meta.app_label == 'ringi' or obj2._meta.app_label == 'ringi': return True return None def allow_migrate(self, db, app_label, model_name=None, **hints): if app_label == 'ringi': return db == 'ringi_db' return None models.py #### Book table should be stored in mypage db #### class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) publication_date = models.DateField() isbn = models.CharField(max_length=13) def __str__(self): return self.title class Meta: db_table = 'book' # Member table should be stored in ringi db # class Member(models.Model): name = models.CharField(max_length=100) email = models.EmailField(unique=True) address = models.CharField(max_length=255) def __str__(self): return self.name … -
Relation does not exist when running Django Unit Tests
I am having trouble running unit tests in my django app when it is running through Jenkins. I have a CI/CD pipeline which runs python manage.py test which is currently failing with the error: django.db.utils.ProgrammingError: relation "auth_user" does not exist. Running tests locally works fine and the test database is normally created and the tests are ran normally. I SSH-ed into the server where Jenkins is set up to try and manually run the tests but I get the same results, so I wouldnt' say it's anything Jenkins specific. The postgres user has all privileges and CREATEDB on the database so postgres side seems to all be good. This is the complete exception: Traceback (most recent call last): File "/home/agent/jenkins/workspace/INP-Backend/venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) psycopg2.errors.UndefinedTable: relation "auth_user" does not exist The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/agent/jenkins/workspace/INP-Backend/manage.py", line 22, in <module> main() File "/home/agent/jenkins/workspace/INP-Backend/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/agent/jenkins/workspace/INP-Backend/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line utility.execute() File "/home/agent/jenkins/workspace/INP-Backend/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/agent/jenkins/workspace/INP-Backend/venv/lib/python3.9/site-packages/django/core/management/commands/test.py", line 24, in run_from_argv super().run_from_argv(argv) File "/home/agent/jenkins/workspace/INP-Backend/venv/lib/python3.9/site-packages/django/core/management/base.py", line 402, in run_from_argv self.execute(*args, **cmd_options) File "/home/agent/jenkins/workspace/INP-Backend/venv/lib/python3.9/site-packages/django/core/management/base.py", line 448, in execute output = … -
Problems between django and django-filter
My problem is that the django-filter library does not work correctly with the choice fields in django rest framework: model: class Incident(models.Model): caller = models.ForeignKey( 'core.Caller', verbose_name='caller', on_delete=models.PROTECT, related_name='incidents', blank=True, null=True, ) declarant = models.ForeignKey( 'core.Declarant', verbose_name='declarant', on_delete=models.CASCADE, related_name='incidents', blank=True, null=True, ) kind = models.ForeignKey( IncidentKind, verbose_name='kind', on_delete=models.SET_NULL, related_name='incidents', blank=True, null=True, ) duplicate_of = models.ForeignKey( 'self', verbose_name='duplicate', on_delete=models.CASCADE, related_name='duplicates', blank=True, null=True, ) source = models.CharField( 'source', max_length=255, default=consts.IncidentSource.APP, choices=consts.IncidentSource.CHOICES, ) status = models.CharField( 'status', max_length=255, choices=consts.IncidentStatus.CHOICES, default=consts.IncidentStatus.REQUEST_112, ) filter: class Incident(django_filters.FilterSet): description = django_filters.CharFilter(lookup_expr='icontains') declarant_phone = django_filters.CharFilter(field_name='declarant__phone', lookup_expr='icontains') incident_address = django_filters.CharFilter(field_name='address__full_address', lookup_expr='icontains') source = django_filters.ChoiceFilter(choices=consts.IncidentSource.CHOICES, lookup_expr='icontains') status = django_filters.ChoiceFilter(choices=consts.IncidentStatus.CHOICES, lookup_expr='icontains') service = django_filters.Filter(method='filter_service') address_caller = django_filters.CharFilter(field_name='caller__address', lookup_expr='icontains') victims = django_filters.BooleanFilter(method='filter_victims') death = django_filters.BooleanFilter(method='filter_death') dt_create = django_filters.Filter(method='filter_dt_create') incident_moment = django_filters.Filter(method='filter_incident_moment') class Meta: model = models.Incident fields = [ 'is_needs_reaction', 'is_social_significant', 'is_risk_emergency', 'description', 'declarant_phone', 'status', 'source', 'operator', 'incident_address', 'kind', 'service', 'address_caller', 'victims', 'death', 'dt_create', ] Source and status choices field. Error: super()._set_choices(value) AttributeError: 'super' object has no attribute '_set_choices' If I use CharFilter, then the filtering works, but not quite as it should source = django_filters.CharFilter(choices=consts.IncidentSource.CHOICES, lookup_expr='icontains') status = django_filters.CharFilter(choices=consts.IncidentStatus.CHOICES, lookup_expr='icontains') My traceback: Traceback (most recent call last): File "/core/tests/test_incident.py", line 60, in test_update response = self.client.put(self.detail_url) File "/venv/lib/python3.10/site-packages/rest_framework/test.py", line 304, in … -
It is possible django APIView recognize request from django Testcase?
Can I determine if the request has been made from the django testcase when the request is made in django APIView? views.py class BackendView(APIView): filter_backends = (DjangoFilterBackend,) filterset_class = BackendFilter @swagger_auto_schema(responses={200: BackendSerializer()}) @transaction.atomic() def post(self, request, *args, **kwargs): # 1. service call # 2. kafka produce ## Here, I will determine whether the request has been received from the test case and try not to produce kafka if it has been received from the test case. tests.py class PrivateBackendApiTests(TestCase): def test_create_backend(self): payload = {} res = self.client.post(BACKENDS_URL, payload, format="json") self.assertEqual(res.status_code, status.HTTP_201_CREATED) -
How to email generated PDF as email attachment using xhtml2pdf
I am generating a PDF using an HTML template and xhtml2pdf render function. I would like a view that can quickly generate and email that PDF to an email field of the model. Something that doesn't store the pdf file anywhere but just uses a temporary file to email the attachment. I have been getting errors regarding 'bytes-like objects required.' Any help would be appreciated. views.py class Pdf(View): model = Pass def get(self, request, id=None, *args, **kwargs): today = timezone.now() guest = get_object_or_404(Pass,id=id) params = { 'today': today, 'guest': guest, 'request': request } return Render.render('guestpass/pdf.html', params) urls.py path('export/pass/<int:id>/', views.Pdf.as_view(),name='print'), -
Python datetime object does not change date light saving automatically when setting day
I am in NZ and we just ended daylight saving on 7th April, when I change the day of the object back to before daylight saving ends, it does not update the timezone back to +13. from django.utils import timezone In [8]: timestamp = timezone.localtime(timezone.now()) In [9]: print(timestamp) 2024-04-09 14:20:58.907339+12:00 In [10]: timestamp = timezone.localtime(timezone.now()).replace(day=1, hour=19, minute=0, second=0) In [11]: print(timestamp) 2024-04-01 19:00:00.784648+12:00 I have had a quick glance over this https://blog.ganssle.io/articles/2018/02/aware-datetime-arithmetic.html but it was talking about timedelta, is this a known issue? -
APScheduler jobstore
is it possible to add a new field to the DjangoJob model in django-apscheduler? I want to add a new field to relate it to another model, or if it's not possible to add, can I use a custom model instead of the default one? If it's possible, how can it be done? -
How to configure PingFederate SSO with SAML for application where frontend is written in react and backend Puthon django
I'M WORKING ON A PROJECT THAT INTEGRATES PING FEDERATE SSO USING SAML FOR AUTHENTICATION, WITH A FRONTEND DEVELOPED IN REACT AND A BACKEND IN DJANGO (PYTHON). I WOULD APPRECIATE YOUR INSIGHTS ON THE BEST PRACTICES TO IMPLEMENT THIS SETUP Current Understanding of the Authentication Flow: The user initiates a request to the frontend. The frontend redirects the user to the Identity Provider (IdP). The user authenticates on the IdP's website. The IdP sends a signed SAML assertion back to our frontend. Our frontend then forwards this SAML assertion to the backend for processing. Questions: Is this flow correct, or is there a more recommended approach for integrating SAML with a React/Django application? What libraries or tools would you recommend for implementing this flow in both React and Django? How should the backend validate the SAML assertion received from the frontend? I'm particularly interested in any best practices, libraries, or patterns that would make this implementation as secure and efficient as possible. Any advice or resources you could share would be greatly appreciated. -
Django Test Fails with OperationalError on Tenant Deletion in Multi-Tenant PostgreSQL Setup
I'm encountering a specific issue when running test cases in a Django project that involves a multi-tenant PostgreSQL database setup. The process I'm testing is tenant deletion, and it's noteworthy that this error only appears during tests, while the actual application runs without any issues in a actual run. Error Messages: During the test execution, I'm hit with two errors in sequence: django.db.utils.OperationalError: cannot DROP TABLE "model_name_1" because it has pending trigger events django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block Detailed Context: The issue manifests when running a Django test that tests the deletion of a tenant and its associated data. Specifically, the errors are triggered at the line where the tenant is deleted using tenant.delete(force_drop=True). The test case sets up data for models that include foreign key relationships, and it is under these conditions that the errors are observed: def test_tenant_deletion(tenant, monkeypatch): with tenant_context(tenant): model_1.objects.create(name="Test date", process_id="process") model_2.objects.create(name="Test date", model_1=model_1.objects.first()) payload = { "eventId": "abcdef", "type": "DELETED", "tenant": {"tenantId": str(tenant.id)}, } event = Mock(link=Mock(source=Mock(address="delete_tenant")), message=Mock(body=json.dumps(payload))) listener = BTPMessageQueueListener(SOLACE_BROKER_URL, SOLACE_BROKER_USER, SOLACE_BROKER_PASSWORD) listener.on_message(event) assert not Tenant.objects.filter(id=tenant.id).exists() Observations: The operation tenant.delete(force_drop=True) proceeds without errors in a real run. The errors are specific to the testing environment, particularly … -
How do you reference a model name in a Django model mixin field definition?
How do you reference the model name in field definition in a model mixin? Ie, what would replace model_name here: class CreatedByMixin(models.Model): class Meta: abstract = True created_by = ForeignKey( User, verbose_name="Created by", help_text="User that created the record", related_name=f"{model_name}_created", editable=False, ) Such that the related name on this model is 'MyModel_created'? class MyModel(UserAuditMixin, TimeStampedModel): class Meta: db_table_comment = "Participants are the users that are involved in the transcript" field1 = models.TextField() -
what should I choose : Django or Node.js? [closed]
I am a solo developer who has been freelancing for a year, and now I have a project related to CRM on which I am going to work in a team. One of my team members said, Let's go with Django, and the other said, Why don't we use Node?". I am comfortable with both and deciding which to choose! Here is the project outline: we get data from users, generate digital documents, agreements, quotations, and invoices, and mail them to the user accordingly. In short, this project is related to audit services. So, kindly let me know, guys, which stack I should choose with pros and cons. -
Django logging isn't working, despite having proper settings
Problem and background Hi, I have a Django project using Django 2.2.28, and python 3.5.2. The live site runs fine, except for one function I'm trying to debug. I've used logging before, but for some reason it's not working now. Here's my code... production_settings.py I call this file in wsgi.py. It's settings all work as they should, but LOGGING isn't. from .settings import * DEBUG = False LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': '/home/myuser/proj_container/debug.log', }, }, 'loggers': { 'django.request': { 'handlers': ['file'], 'level': 'DEBUG', 'propagate': False, }, }, } views.py import logging logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) def some_func(request): ... if some_condition: logger.debug('In some_condition block') elif some_other_condition: logger.debug('In some_other_condition block') What I've tried I've tried the above with just the settings in production_settings.py... Nothing shows up. Same as 1, but with logging imported and called at every important code block. I read the docs for logger.debug(), as well as this answer that I implemented above as you can see. I also reread the Django logging docs. I moved LOGGING from production_settings.py to settings.py... Yesterday I fixed a bug where django wasn't overriding the DATABASES variable in settings.py from production_settings.py, and was … -
Django HTTPResponseRedirect not redirecting to the url but rather adding the integer to the url
This is my view.py file from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotFound, Http404, HttpResponsePermanentRedirect from django.urls import reverse from django.shortcuts import render articles = { 'sports': 'sports page', 'finance' : 'finance page', 'tech' : 'tech page', } def home_view(request): return HttpResponse("My App Home Page") def news_view(request, topic): try: result = articles[topic] return HttpResponse(result) except: raise Http404("404 Generic view error") def mul_view(request,num1,num2): num_result = num1 * num2 result = f"{num1} * {num2} = {num_result}" return HttpResponse(str(result)) def num_page_view(request, num_page): topic_list = list(articles.keys()) topic = topic_list[num_page] return HttpResponseRedirect(topic) and this is my url file of the app from django.urls import path from . import views urlpatterns = [ path('<int:num_page>/', views.num_page_view, name='num_page'), # path('', views.home_view, name='home'), path('<topic>/', views.news_view, name='topic-page'), path('<int:num1>/<int:num2>/', views.mul_view, name='multiply'), ] What's happening here is a bit hard to explain for me as english is not my first language but here is my best effort. I have created a function num_page_view that takes a number as a parameter and has a list of all keys of articles dictionary then the number is provided to the list as an index and stored into a variable topic that is then send as the output in the HttpResponseRedirect then i added a a new path … -
Django makemessages, TypeError: expected str, bytes or os.PathLike object, not list
I'm trying to create a multi language Django project in pycharm. But have struggled for the whole day figuring out why the makemessages doesn't generate .po files. So I reach out for some help. settings.py from pathlib import Path import os from decouple import config from unipath import Path from django.utils.translation import gettext_lazy as _ import environ env = environ.Env() environ.Env.read_env() BASE_DIR = Path(__file__).resolve().parent.parent CORE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale/'), ) LANGUAGE_CODE = 'en-us' LANGUAGES = [ ('en', _('English')), ('fr', _('French')), ] TIME_ZONE = 'UTC' USE_I18N = True USE_TZ = True When I run python manage.py makemessages -l fr I get the following response: Traceback (most recent call last): File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm/django_manage.py", line 52, in <module> run_command() File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm/django_manage.py", line 46, in run_command run_module(manage_file, None, '__main__', True) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 225, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 97, in _run_module_code _run_code(code, mod_globals, init_globals, File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/famronnebratt/PycharmProjects/CompValid3/manage.py", line 22, in <module> main() File "/Users/famronnebratt/PycharmProjects/CompValid3/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/Users/famronnebratt/PycharmProjects/CompValid3/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/Users/famronnebratt/PycharmProjects/CompValid3/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/famronnebratt/PycharmProjects/CompValid3/venv/lib/python3.9/site-packages/django/core/management/base.py", line 412, in run_from_argv self.execute(*args, **cmd_options) File "/Users/famronnebratt/PycharmProjects/CompValid3/venv/lib/python3.9/site-packages/django/core/management/base.py", line 458, in execute output = … -
Can't serve django App behind Apache + Nginx
I have a Django App that I'm trying to deploy on our dev server through a domain name. Our dev server uses apache, while I use nginx to serve my app and static/media files. If I deploy it locally on my computer (localhost:port) everything works perfectly. Once I try it on our dev server, I cannot connect to the websocket endpoint. First of all I deploy my app with a docker-compose.yml consisting of an nginx, django app, redis and postgres services. Below is my nginx conf file server { listen 80; listen 443 default_server ssl; server_name localhost; charset utf-8; location /static { alias /app/static/; } location /upload { alias /app/media/; } location / { proxy_pass http://web:8000; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Host $http_host; proxy_redirect off; } location /ws/ { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_pass http://web:8000; } } And here is my apache conf <IfModule mod_ssl.c> <VirtualHost *:443> ServerName our.dev.server <Location /> ProxyPass http://127.0.0.1:89/ ProxyPassReverse http://127.0.0.1:89/ # Proxy WebSocket connections to your application RewriteEngine On RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteCond %{HTTP:Connection} upgrade [NC] RewriteRule ^/ws/(.*)$ ws://127.0.0.1:89/$1 [P,L] </Location> SSLCertificateFile /etc/letsencrypt/live/our.dev.server/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/our.dev.server/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf RequestHeader add X-Forwarded-Proto "https" </VirtualHost> </IfModule> When I try … -
Ajax request works succesfully in local but not working in web server. I use Django, Docker. I loads long time and after
Ajax request works successfully locally but not on the web server. I'm using Django and Docker. I've checked all my settings in my docker-compose.yml, Dockerfile, settings.py, urls.py, etc. After loading for a long time, the console shows a message saying "no response." Here's my Ajax view: function ShowOTP () { $.ajax({ url: '/createcustomer/', type: "POST", data: { 'first_name': $('#first_name').val(), 'last_name': $('#last_name').val(), 'number_prefix': $('#number_prefix').val(), 'phone_number': $('#phone_number').val(), 'otp_form': 'otp_form' }, success: (response) => { if (response["valid"] == 'True') { document.getElementById('otpshow').click(); countdownOTP("#countdown", 2, 0); } if (response["valid"] == 'False') { window.location = '' } }, error: (error) => { console.log('error'); console.log(error); } }); }; -
How does Django BooleanField work with RadioSelect?
I have a model with a boolean class MyModel(models.Model): ... current_measures = models.BooleanField( verbose_name=_("Is there any control and safety measures?"), choices=BOOLEAN_CHOICE, ) ... I have a form that should set a value on this field using either true or false values. class MyForm(forms.ModelForm): ... current_measures = forms.BooleanField( widget=WidgetRadioSelectCustomAttrs( RADIO_WIDGET_ATTRS, choices=Risk.BOOLEAN_CHOICE ), label=_("Is there any control and safety measures?"), label_suffix="", required=True, ) ... Everything works fine until I set required=True on my form field and send the value "False" to validation method. In this case it raises ValidationError('Current measures is required') As I found out while debuging, the issue is with validate method of forms.BooleanField. At first it runs the method to_python, witch converts my value 'False' (type string) to False (type bool). def to_python(self, value): """Return a Python boolean object.""" # Explicitly check for the string 'False', which is what a hidden field # will submit for False. Also check for '0', since this is what # RadioSelect will provide. Because bool("True") == bool('1') == True, # we don't need to handle that explicitly. if isinstance(value, str) and value.lower() in ("false", "0"): value = False else: value = bool(value) return super().to_python(value) Then the validate method of BooleanField class is being … -
how to verify Django hashed passwords in FastAPI app
So I have a Python project in Django and I'm trying to change it to FastAPI. The passwords in the database are already hashed (I'm using the same database from the Django project), the passwords in the database start with pbkdf2_sha256$260000$. I'm trying to do the login function, but I'm having trouble with the password, I get an error "raise exc.UnknownHashError("hash could not be identified") passlib.exc.UnknownHashError: hash could not be identified" when I insert the username and password in my fastapi login form. #Security config security = HTTPBasic() pwd_context = CryptContext(schemes=["pbkdf2_sha256"], deprecated="auto") async def login(request: Request): form = await request.form() username = form.get("username") password = pwd._context(form.get("password")) db = database.SessionLocal() user = db.query(models.User).filter(models.User.username == username).first() if not user or not pwd_context.verify(password, user.password): raise HTTPException(status_code=401, detail="Invalid username or password") token = create_jwt_token(user.id) response = RedirectResponse(url="/index", status_code=301) response.set_cookie(key="token", value=token) return response I'm trying to hash the password the user inserts so it can be verified with the hashed password in the database. I've also tried password = form.get("password"), and the error still pops up. This is the error: File "C:\Users\user\Desktop\VSPRojects\LoginFastapi\db\views.py", line 53, in login if not user or not pwd_context.verify(password, user.password): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\Desktop\VSPRojects\LoginFastapi\venv\Lib\site-packages\passlib\context.py", line 2343, in verify record = self._get_or_identify_record(hash, scheme, category) … -
Django: object has no attribute after annotation; Got AttributeError when attempting to get a value for field <field_name> on serializer
I have a custom user model and subscription model, which contains ForeignKeys to subscriber and user to subscribe to. class Subscription(models.Model): user = models.ForeignKey( ApiUser, on_delete=models.CASCADE, related_name='subscriber' ) subscription = models.ForeignKey( ApiUser, on_delete=models.CASCADE, related_name='subscriptions' ) Also i have viewset for subscription and two serializers: for write and for read. class SubscribeViewSet(mixins.ListModelMixin, mixins.CreateModelMixin, mixins.DestroyModelMixin, viewsets.GenericViewSet): queryset = ApiUser.objects.all() serializer_class = SubscriptionSerializerForRead permission_classes = (permissions.AllowAny,) def get_queryset(self): queryset = ApiUser.objects.all().annotate( is_subscribed=Case( When( subscribtions__exact=self.request.user.id, then=Value(True) ), default=Value(False), output_field=BooleanField() ) ).order_by('id') return queryset def get_serializer_context(self): context = super().get_serializer_context() context.update({'subscription_id': self.kwargs['pk']}) return context def get_serializer_class(self): if self.request.method not in permissions.SAFE_METHODS: return SubscriptionSerializerForWrite return SubscriptionSerializerForRead @action( methods=['POST'], detail=True, url_path='subscribe' ) def subscribe(self, request, pk): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) class SubscriptionSerializerForRead(serializers.ModelSerializer): is_subscribed = serializers.BooleanField() class Meta: model = ApiUser fields = ( 'email', 'id', 'username', 'first_name', 'last_name', 'is_subscribed' ) class SubscriptionSerializerForWrite(serializers.ModelSerializer): user = serializers.StringRelatedField( required=False, read_only=True, default=serializers.CurrentUserDefault() ) subscription = serializers.PrimaryKeyRelatedField( read_only=True ) class Meta: model = Subscription fields = ('user', 'subscription') def validate(self, attrs): attrs['user'] = self.context['request'].user attrs['subscription_id'] = self.context['subscription_id'] if self.context['request'].user.id == self.context['subscription_id']: raise serializers.ValidationError( 'Cannot subscribe to yourself' ) return attrs def to_representation(self, instance): return SubscriptionSerializerForRead( instance=instance.subscription ).data After successful subscription i need to return response with subscribed user data … -
How to implement an API database-connection to replace Django's functions
I have a project running in Django that handles all of my database actions through urls and views. I want to change this to Postgres and use an API that instead handles all of my database actions. This would be my first API so i'm not sure what the optimal process of designing it would be. So far I have just initialised a new project, I want to use Typescript and express.js.