Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Is there a solution to type hint a django annotation?
I have a django project which I am trying to type and add type checking through mypy. I want to use django annotations to get more informations about an object. This operation adds properties to a class already declared. The package django-stubs already provides a typing class WithAnnotations that should do the work but it doesn't. To be clear, I simply want this code to pass mypy from django.db import models class User(models.Model): first_name: models.CharField() last_name: models.CharField() class Team(models.Model): users: models.ManyToManyField(User) class House(models.Model): inhabitants: models.ManyToManyField(User) users = User.objects.all() for user in users: print(user.first_name) users_with_teams = Users.objects.all().annotate(teams_ids=ArrayAgg(...)) users_with_teams_and_houses = users_with_teams.annotate(houses_ids=ArrayAgg(...)) for user in users_with_teams: print(user.first_name) print(user.teams_ids) print(user.houses_ids) If I try to run it I get errors object User has no attribute teams_ids or object User has no attribute houses_ids I thought it would be nice to have it in functions: from typing import TypeVar T = TypeVar("T") def annotate_teams(query: QuerySet[T]) -> QuerySet[SomethingElseButWhat]: return query.annotate(teams_ids=ArrayAgg(...)) but I don't know which type my function should return. Does any of you know if what I am looking for is possible ? -
What's the proper way to conclude the OAuth2 flow in Django?
To keep the story short, I've acquired all the necessary tokens from Google using the "auth code" flow. So currently, I have the following tokens at my disposal: 1. access_token 2. refresh_token 3. id_token 4. verified JWT token The next step is to log in the user using the provided login() method from django.contrib.auth. This creates a sessionId which is then used to "verify" that a user is logged in. In my current development setup, I'm just using the email from the JWT token to create the session: from django.contrib.auth import login from django.contrib.auth.models import User def login_provider(request): # 1. Get the user info from JWT token (assume I have it) user_obj = jwt_token.user # 2. Create a Django user instance user, created = User.objects.get_or_create(email=user_obj.email) # 3. Log the user in login(request, user) # 4. Redirect the user somewhere else return redirect("somewhere-else/") I've taken all the necessary steps to ensure the Google OAuth2 flow part is secure but am I correct in assuming that this way of logging the user in isn't secure since I'm basically using just the users email? What's the correct way to do this? -
Logs not getting sent to Datadog when running Django shell inside a container
The logs that are created by the code running inside the container do get sent to Datadog, but when I'm in a shell session inside the container those logs get outputted in the terminal, but not sent to Datadog. Therefore, once I leave the session (if I don't copy and paste the logs into a file), they are forever lost. TL;DR; Datadog Agent runs inside the container, but not inside the shell session inside the container How can I make it so that the logs produced inside the shell session also get sent to Datadog ? -
How to add element in Django QuerySet?
I have model Report and GroupReport. They have many-to-many relation. I can easily get QuerySet[GroupReport] for all GroupReport instance: Group Name 1: Report Name 1 Report Name 2 Group Name 2: Report Name 2 Report Name 10 ... and etc. But i need to add entry "Total Reports" to QuerySet[GroupReport]: Group All reports: Report Name 1 Report Name 2 Report Name 5 ... and another reports from QuerySet[Report] I can't store group "Total Reports" in database because using object permissions for QuerySets. It is necessary to generate the group dynamically. My Serializer expect correct queryset. How can i do this? I tried to do it something like this: def get_queryset(self): groups = get_objects_for_user( user=self.request.user, perms=view_reportgroup, klass=ReportGroup.actived_objects, accept_global_perms=False ) reports = get_objects_for_user( user=self.request.user, perms=view_report, klass=Report.actived_objects, accept_global_perms=False ) total = ReportStorage(id=None, name='Total Reports') total.reports.set( Report.actived_objects.filter( Q(id__in=reports) | Q(groups__in=groups) ).distinct() ) return (groups | total).prefetch_related( Prefetch( 'reports', queryset=ReportStorage.prefetch_related( Prefetch( 'reportstorage', queryset=super().get_queryset() ) ) ) ) But got expected error: "needs to have a value for field 'id' bla-bla..." for total.reports.set. I was also thinking about adding ReportStorage to groups._result_cache. But I don't understand how it should look. Maybe there are more correct ways such as custom SQL, converting QuerySet to List? -
Kafka consumer is missing messages during deployment
My consumers are inherited from the BasicKafkaConsumerV2. During deployments when the pods are rotating I am missing few messages which is visible from the offsets printed after the manual commit(). Kafka is not supposed to miss messages if not committed. What could be the problem here. run command: - name: order-consumer image: KUSTOMIZE_PRIMARY imagePullPolicy: Always command: [ # Invoking wait for pgbouncer script "/wait-for.sh", "localhost:6432", "-s", "-t", "30", "--", # Starting main process "ddtrace-run", "python", "manage.py", "run_order-consumer", ] Consumer: class BasicKafkaConsumerV2: group_id = None # str consumer_name = None # str newrelic_application = None topic_handlers = {} # dict DB_EXCEPTION_RETRY_TIMEOUT = 5 # seconds DLQ_TOPIC = None def __init__(self, latest_offset=False): """Inits the Consumer and subscribes to the topics""" self.consumer = KafkaConsumer( bootstrap_servers=["broker1", "broker2"], group_id=self.group_id, enable_auto_commit=False, auto_offset_reset="latest", ) self.topics_list = list(self.topic_handlers.keys()) self.consumer.subscribe(self.topics_list) self.newrelic_application = newrelic.agent.application() logger.info( f"{[self.consumer_name]} subscribed to {self.topics_list} with auto_offset_reset {self.auto_offset_reset}" ) def message_handler_wrapped( self, topic: str, kafka_msg_value: bytes, headers: dict, consumed_message=None, ): """Processes the message Also handles any DB exceptions by retrying the event after a period """ with tracer.trace( settings.DD_KAFKA_RESOURCE_NAME, service=settings.DD_SERVICE, resource=self.group_id, span_type="consumer", ) as span: try: json_data = json.loads(kafka_msg_value) dict_headers = convert_tuple_to_dict(headers) span.set_tag("topic", topic) span.set_tag("event", self.get_event_name(json_data)) self.message_handler(topic, json_data, dict_headers) except (InterfaceError, OperationalError) as e: """Sleep for … -
Create non existing tag with Django-select2
I am using django-select2 to autocomplete a tag field on a model. I would like to let user write any tag in the field, and create it if the tag doesn't exists... # models.py class Version(models.Model): ... tags = models.ManyToManyField(Tag, blank=True) class VersionTagWidget(s2forms.ModelSelect2TagWidget): search_fields = [ "nom__icontains", ] class VersionEditViewForm(forms.ModelForm): def __init__(self, *args, **kwargs): ... class Meta: model = Version widgets = { "tags": VersionTagWidget, } I can autocomplete value (and select in a dynamic dropdown), but if type in a non-existing (in my example, I entered 'DoesNotExist') value and submit the form, I get : Exception Value: Field 'id' expected a number but got 'DoesNotExist'. I tried a lot of things to solve the pb.... But no clue here... -
Safely Storing Passwords and Database Credentials in Django [closed]
Does anyone here have experience with Django? How can I safely store my passwords, database credentials, and other sensitive information in settings.py? I found it using cryptography but wanted to hear more ideas.. Someone Can help me? -
Adding laos language in Django
I have added the langauge laos in settings.py as follows LANGUAGES = [ ("en", _("English")), ("my", _("Burmese")), ("fr", _("French")), ("km", _("Khmer")), ("th", _("Thai")), ("vi", _("Vietnamese")), ("lo", _("Lao")), ] However, when I load my application I get the error. KeyError at / 'Unknown language code lo.' Seems like the current version of Django does not support the language. Is there a way I can manually add a none existing language in Django? Thank you in-advance. -
Why companies still prefer Django over Fast API for REST APIs developments
Can I get thoughts from working professionals in python domain over why companies still prefer Django over Fast API for REST APIs developments. In python world I see more opportunity of Django over Fast API. So wanted to know the reason about this preference. As in multiple blogs and Generative AI I got to know that Fast API outperforms Django. -
Pydantic/Django Ninja use only existing keys (even with None)
having an app in Django Ninja with schemas: class NumericalFilterSchema(Schema): gt: Optional[int] = None lt: Optional[int] = None gte: Optional[int] = None lte: Optional[int] = None exact: Optional[int] = None class Config(Schema.Config): extra = "forbid" class StringFilterSchema(Schema): contains: Optional[str] = None icontains: Optional[str] = None exact: Optional[str] = None class Config(Schema.Config): extra = "forbid" class InputsSchema(Schema): major_version: Optional[NumericalFilterSchema] = None app_name: Optional[StringFilterSchema] = None class Config(Schema.Config): extra = "forbid" class InputSchema(Schema): filters: InputsSchema class Config(Schema.Config): extra = "forbid" which I then use in the endpoint like this: @router_v1.post( "/apps", tags=["..."], auth=AuthBearer(), ) def dynamic_filter(request: HttpRequest, filters: InputsSchema): query = Q() # import ipdb # ipdb.set_trace() for key, value in filters.dict(exclude_none=True).items(): # key = translate_field(key) # just abstraction between endpoint keys to db keys if isinstance(value, dict): for k, v in value.items(): if v is not None: query &= Q(**{f"{key}__{k}": v}) else: query &= Q(**{key: value}) results = Apps.objects.filter(query) ... Problem: As you can see in the query building I am excluding all the None values which is fine in the most cases for example: { "major_version": { "exact": 3 }, "app_name": { "icontains": "google" } } this will return schema InputsSchema(major_version=NumericalFilterSchema(gt=None, lt=None, gte=None, lte=None, exact=3), app_name=StringFilterSchema(contains=None, icontains='google', exact=None)) which is … -
Method not allowed in fresh django-ninja-extra project
I cant make a post request in my project, now i created a fresh project, because i thought it was a configuration problem. But the Problem persists. The problem is that when i try to make a post request it always gives me a 405 status back. settings.py: # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'backend.apps.department', 'ninja_extra' ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] api.py: from ninja_extra import NinjaExtraAPI api = NinjaExtraAPI() api.auto_discover_controllers() department/api.py: from ninja_extra import api_controller, route from django.shortcuts import get_object_or_404 from ninja import Schema from datetime import datetime from .models import department from typing import List class DepartmentIn(Schema): name: str last_modified: datetime user_id: int class DepartmentOut(Schema): id: int name: str last_modified: datetime @api_controller('department/') class DepartmentController: @route.get("all/", response=List[DepartmentOut]) def get_departments(self): department_list = department.objects.all() return department_list @route.get("{department_id}/", response=DepartmentOut) def get_department(self, department_id: int): record = get_object_or_404(department, id=department_id) return record @route.post("create/") def create_department(self, payload: DepartmentIn): record = department.objects.create(**payload.dict()) return {"id": record.id} models.py: from django.db import models from django.conf import settings class department(models.Model): name = models.CharField(max_length=50) last_modified = models.DateTimeField(auto_now=True, auto_now_add=False) user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) The Problem i get: Response body Method not allowed Response headers allow: GET content-length: 18 content-type: text/html; charset=utf-8 … -
In Django REST Framework, why does raising serializers.ValidationError return errors in different format in validate() and create() methods?
I am working on a DRF project and have a serializer like: class SomeSerializer(serializers.Serializer): number_field = serializers.IntegerField(required=False, min_value=25, max_value=100) In my settings.py, I have REST_FRAMEWORK = { other settings.... 'EXCEPTION_HANDLER': 'apps.utils.exceptions.custom_exception_handler', } In the custom exception handler, I handle ValidationError as follows: def custom_exception_handler(exc, context): # Call REST framework's default exception handler first response = exception_handler(exc, context) messages = None code = None detail = None if response is not None: # Map specific exceptions to custom error codes if isinstance(exc, ValidationError): code = "validation_error" detail = "One or more fields failed validation." messages = exc.detail status_code = status.HTTP_400_BAD_REQUEST # After checking for other errors here in between else: code = "unexpected_error" detail = response.data.get("detail", "An unexpected error occurred.") messages = response.data.get("messages", {"error": str(exc)}) """ In between the if and else, AuthenticationFailed, PermissionDenied, NotFound, are handled. Add an appropriate code and return in the format response.data = { "detail": detail, "code": code, "messages": messages } """ The custom exception handler is configured to return the error in the format shown below. But it only happens if I validate the min and max range inside the create() method (without min_value and max_value defined on the serializer field itself) { "detail": "One … -
When I dockerize django vue3 app django container does not work
I am learning docker and while I dockerize my django vue3 app I got error. Dockerfile: FROM python:3.11-slim RUN apt-get update && apt-get install -y \ libpq-dev gcc curl \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /backend/project COPY requirements.txt /backend/ RUN pip install --no-cache-dir -r /backend/requirements.txt COPY . /backend/ RUN chown -R www-data:www-data /backend USER www-data ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] Docker-compose: version: '3.9' services: web: build: context: . dockerfile: dockerfile container_name: c_django command: python manage.py runserver 0.0.0.0:8000 volumes: - ./backend:/app ports: - 8000:8000 environment: ALLOWED_HOSTS: '*' DEBUG: 'True' SECRET_KEY: random_secret_key DATABASE_NAME: fitness DATABASE_USER: postgres DATABASE_PASSWORD: 123456 DATABASE_HOST: db DATABASE_PORT: 5432 REDIS_URL: redis://redis:6379/1 depends_on: - db - redis networks: - frontend_backend db: image: postgres:15 container_name: c_postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: 123456 POSTGRES_DB: fitness ports: - 5432:5432 volumes: - postgres_data:/var/lib/postgresql/data frontend: build: context: ../frontend container_name: c_frontend ports: - 8080:80 depends_on: - web networks: - frontend_backend nginx: image: nginx:latest container_name: c_nginx volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d - ./frontend/dist/:/usr/share/nginx/html ports: - 80:80 depends_on: - frontend networks: - frontend_backend redis: image: redis:8.0-M02-alpine container_name: c_redis ports: - 6379:6379 networks: - frontend_backend volumes: postgres_data: networks: frontend_backend: driver: bridge When I docker compose up I got this error for django … -
IIS does not pass on REMOTE_USER with HTTP Platform Handler
I have a Django server application that I am running with IIS on Windows Server (using HTTP Platform Handler). I would like to use Windows Authentication. I have enabled Windows Authentication in the server settings in IIS. If I understood the documentation correctly, I would expect that for each request, IIS would then send a REMOTE_USER object in the HTTP request to the Django server. However, this does not happen. REMOTE_USER is neither a server environment variable nor in request.META. In the IIS logs (The logs in C:\inetpub) I can see that it recognises my user, but IIS does not seem to forward that user information to the Django server. A line in the logs looks e.g. as follows: 2024-12-11 12:10:20 <SERVER IP> GET /<PATH> - <PORT> <DOMAIN>\<USERNAME> <CLIENT IP> <BROWSER DATA> ... So, IIS clearly does perform Windows Authentication, and it works, but that information somehow never makes it to the Django server. I have tried using Django's RemoteUserMiddleware, which does not change the behaviour. Is there some additional setting that I am missing? -
'{% load static %}' doesn't seem to get picked up by vs code
enter image description here The text is still white and there's no indicator as to if it's working or not. I don't know if this is because of a screw up in my part or an issue with VS code. I am unfamiliar with troubleshooting methods for this, please let me know if there are any. Thank you in advance for any help. -
what is the correct way to pass context to a playwright function when using python django as the basis for a webapp?
I've got a web app that I built first with Flask, then totally rebuilt with Django, to get advantage of the admin interface. It builds a flyer for a kids football match, using the context to overlay on a background image via css absolute position. Once the coach is happy with the image, a button calls a Generate function, which opens a browser with playwright and passes the session data to recreate the image and allow the coach to download it. When the coach is viewing the image the text fields are populated from the context. this all works fine. def image(request): ... some other bits ... for key in request.session.keys(): context[key] = request.session[key] return render(request, 'coaches/image.html', context) this is an example from the template that shows how the text is added from context. I'm using Django Template engine. {% for player in squad %} <td> <span class="playernumber">{{ player.number }}</span> <span class="playerfirstname">{{ player.first }}</span> <span class="playerlastname">{{ player.last }}</span> </td> {% if forloop.counter|divisibleby:2 %} </tr> <tr> {% endif %} {% endfor %} the same template code doesnt work when the playwright browser view is invoked. the view is fine, the template is fine, but calling the variables from context doesnt work. … -
How to list by most used foreign keys in django
I have 2 models: Post and Comment as you can see below class Post(models.Model): id = models.UUIDField( primary_key = True, default = uuid.uuid4, editable = False) user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, ) date = models.DateTimeField(default=datetime.now) title = models.CharField(max_length=100,) body = models.CharField(max_length=1000) class Comment(models.Model): id = models.UUIDField( primary_key = True, default = uuid.uuid4, editable = False) post = models.ForeignKey(Post, on_delete=models.CASCADE, default=None, null=True, blank=True) user = models.ForeignKey(CustomUser, on_delete=models.CASCADE) date = models.DateTimeField(default=datetime.now) body = models.CharField(max_length=1000) I want to get the most commented posts last week so how would I list the Posts with most comments. Thanks! -
How to list product in fixed position?
Hello, I haven't been able to do this for a while. Can someone show me how how to did it? After searching for a product, is it possible for it to appear exactly in this format? this is model. class Product(BaseModel): owner = models.ForeignKey( 'account.Account', on_delete=models.CASCADE, blank=False, null=False, verbose_name=_("Owner"), ) title = models.CharField( max_length=150, help_text=_("User-friendly attribute name"), verbose_name=_("Name"), ) location = models.ForeignKey( 'tag_map.Location', on_delete=models.PROTECT, blank=True, null=True ) rank = models.IntegerField(blank=True, null=True) is_featured = models.BooleanField(default=False, db_index=True) class Tariff(BaseModel): name = models.CharField(max_length=100, verbose_name=_('Tariff Name')) duration_in_days = models.PositiveIntegerField(default=0, verbose_name='Duration in Days') duration_in_hours = models.PositiveIntegerField(default=0, verbose_name="Duration in Hours") price = models.DecimalField(default=0, max_digits=10, decimal_places=2) active = models.BooleanField(default=False) def __str__(self): return f"{self.name} ({self.duration_in_days} days, {self.duration_in_hours} hours) -- {self.price} uzs" def total_duration(self): return timedelta(days=self.duration_in_days, hours=self.duration_in_hours) class FeaturedProduct(BaseModel): product = models.OneToOneField( 'product.Product', on_delete=models.CASCADE, related_name='featureds', verbose_name=_("Product")) tariff = models.ForeignKey( 'product.Tariff', on_delete=models.PROTECT, blank=True, null=True, verbose_name="Tariff" ) start_time = models.DateTimeField(default=now, verbose_name="Start Time") end_time = models.DateTimeField(blank=True, null=True, verbose_name="End Time") def is_active(self): return now() <= self.end_time -
Custom Link on Column
I am working with django-tables2 to display some patient information on a page. I am creating the table like this: class PatientListView(tables.Table): name = tables.Column('Practice') patientid = tables.Column() firstname = tables.Column() lastname = tables.Column() dob = tables.Column() addressline1 = tables.Column() addressline2 = tables.Column() city = tables.Column() state = tables.Column() zipcode = tables.Column() class Meta: template_name = 'django_tables2/bootstrap.html' and then I am populating the table in my view with the result of an sql query like this: table = PatientListView(patients) I would like to ideally make each row of the table clickable so clicking anywhere on the table row would take me to a separate url defined by me. I would also settle for having a specific cell to click that would take me to a separate url. I have seen the linkify option, but from what I've read of the documentation it looks like linkify does redirects to django model pages, but I am not using models for this database as the database is created and managed by another application, and I am just reading and displaying that information. If django-tables2 is not the right solution for this issue I am open to hearing suggestions of other ways I can … -
get list of selected items from html form when we have two from in django app
hello i have two html from for selcting categories one for desktop view and other one for mobile view both of them have get method mt problem is in the mobile view when i select a category its work at start but when i want to select another one its not its html form for mobile view : <form action="{% url 'shop:category' %}" method="get"> {% for cat in categories %} <div class="d-flex align-items-center justify-content-between flex-wrap mb-3"> <div class="form-check"> <label for="category_{{ cat.id }}" class="form-check-label">{{ cat.name }} </label> <!-- Correctly use the same name and ensure it's an array to hold multiple values --> <input type="checkbox" name="categories" id="category_{{ cat.id }}" value="{{ cat.id }}" class="form-check-input" {% if cat.id|stringformat:"s" in selected_categories %}checked{% endif %}> </div> <div> <span class="fw-bold font-14">( {{ cat.product_numbers }} )</span> </div> </div> {% endfor %} <div class="filter-item text-center"> <button type="submit" class="btn-outline-site">اعمال فیلتر</button> </div> and this is for desktop view : <form action="{% url 'shop:category' %}"> {% for cat in categories %} <div class="d-flex align-items-center justify-content-between flex-wrap mb-3"> <div class="form-check"> <label for="colorCheck11" class="form-check-label">{{ cat.name }} </label> <label for="category_{{ cat.id }}"></label><input type="checkbox" name="categories" id="category_{{ cat.id }}" value="{{ cat.id }}" class="form-check-input"> </div> <div> <span class="fw-bold font-14">( {{ cat.product_numbers }} )</span> </div> </div> {% endfor … -
Django DRF - Accessing data from POST request forwarded through ngrok
I'm working on a Django REST framework (DRF) API that receives data forwarded from an external endpoint through ngrok. Here's the relevant view code: Python class MessageReceiver(generics.CreateAPIView): def post(self, request, org_id, channel_name): data = request.data if data: return Response( data={ "data": data }, status=status.HTTP_200_OK ) return Response(data={'message': 'No data received'}, status=status.HTTP_400_BAD_REQUEST) Use code with caution. My question is: since this is a POST request, I'm unable to access the original forwarded data directly. As I understand, POST requests require a payload to be sent along with the request. How can I effectively access and process the data within request.data in this scenario before I have to hit the endpoint again? -
Celery infinite retry pattern issue
I am using celery with AWS SQS for async tasks. @app.task( autoretry_for=(Exception,), max_retries=5, retry_backoff=True, retry_jitter=False, acks_late=True, ) @onfailure_reject(non_traced_exceptions=NON_TRACED_EXCEPTIONS) def send_order_update_event_task(order_id, data): ......... But the retry pattern is getting very much messed up when I use an integer value for the retry_backoff arg. No of tasks spawning up are getting out of control. logs: 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [53285c923f-79232a3856] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [1052f09663-c19b42589a] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [dd021828dd-4f6b8ae6f8] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [116bef9273-e4dbfb526b] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [913697ae7e-d4f65d45a5] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [d99e889882-a76718b549] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [d99e889882-30bac3e515] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR [1b810665-c0b1-4527-8cd9-c142f67d6605] [d7f01e5b4f-edfa22355f] tasks.order_request_task - [ send_order_update_event_task] Exception for order: 700711926: Order absent 700711926, retry_count: 10 2024-12-10 05:16:10 ERROR … -
Serializer raise exception to foreign data
I have complex selection logic for GET request, but serializer raise next exception. Got AttributeError when attempting to get a value for field crossroad_direction on serializer CrossroadDirectionRegulationSerializer. The serializer field might be named incorrectly and not match any attribute or key on the RelatedManager instance. Original exception text was: 'RelatedManager' object has no attribute 'crossroad_direction'. Direction has relationship One to One through models.ForeignKey(unique=True). Selection query create by use select_related('regulation') I added required serializers and models below. Serializers Crossroad class ReadonlyCrossroadFullDataSerializer(serializers.ModelSerializer): time_loads = CrossroadTimeLoadSerializer(many=True) sides = CrossroadSideFullDataSerializer(many=True) directions = CrossroadDirectionFullDataSerializer(many=True) class Meta: model = Crossroad fields = "__all__" CrossrodDirection class CrossroadDirectionFullDataSerializer(serializers.ModelSerializer): time_params = CrossroadDirectionTimeParamsSerializer(many=True) regulation = CrossroadDirectionRegulationSerializer(allow_null=True, default=None) class Meta: model = CrossroadDirection fields = "__all__" Regulation class CrossroadDirectionRegulationSerializer(serializers.ModelSerializer): class Meta: model = CrossroadDirectionRegulation fields = "__all__" Models CrossrodDirection class CrossroadDirection(models.Model): class Meta: constraints = ( models.UniqueConstraint( "input_point", "output_point", name="unique_crossroad_direction__input_output_points", ), ) crossroad = models.ForeignKey( Crossroad, on_delete=models.CASCADE, related_name="directions", ) input_point = models.ForeignKey( CrossroadPoint, on_delete=models.CASCADE, related_name="direction_input_point", ) output_point = models.ForeignKey( CrossroadPoint, on_delete=models.CASCADE, related_name="direction_output_point", ) probability = models.FloatField(default=1) Regulation class CrossroadDirectionRegulation(models.Model): crossroad_direction = models.ForeignKey( CrossroadDirection, on_delete=models.CASCADE, unique=True, related_name="regulation", ) cycle_duration = models.IntegerField(default=180) green_signal_phase = models.IntegerField(default=60) If I change Regulation serializer as below then crossroad serializer work successful - if there is regulation then … -
experiencing intermittent apache error AH01630
We have two different django apps running on a server (Centos7), using django manage.py runmodwsgi (python module mod_wsgi). Both apps are running fine, and have been for a few years. The odd thing we are running into is that every 10-12 days or so, we get a 403 Forbidden message in the browser. When checking the mod_wsgi apache error log (/tmp/mod_wsgi-localhost:8080:1999/error_log), there is nothing except the error below, which is triggered whenever the user unsuccessfully tries to access the app. AH01630: client denied by server configuration: /tmp/mod_wsgi-localhost:8080:1999/htdocs After receiving this error, I can see that the htdocs directory that is referenced in the error doesn't exist. Restarting the web server fixes the issue (and the htdocs directory reappears). Both apps experience this issue. Sometimes at the same time, sometimes not. Both apps otherwise run fine. We would really like to find a solution to this annoying issue. Googling this error just gives me advice on the httpd.conf file content, but I have not been able to find any help on this when the issue is intermittent the way I'm describing it here. I have plotted the date/times of the AH01630 errors, and find that this happens at an oddly regular … -
Django-tenant: Accessing tenant data in public domain
I was working on Django-tenant where I have tenant model called Appointment now I want to get the appointment of a specific tenant from the public domain but I'm having an issue when rendering it in the template class OrganizationAppointmentList(LoginRequiredMixin, TenantMixin, ListView): template_name = 'main/appointments/list_appointment.html' paginate_by = 10 def get_queryset(self): tenant_id = self.kwargs.get('pk') try: tenant = Organization.objects.get(id=tenant_id) self.schema_name = tenant.schema_name with schema_context(self.schema_name): queryset = Appointment.objects.all() return queryset except Organization.DoesNotExist: raise Http404("Tenant not found") except Exception as e: raise Http404(f"Error accessing tenant data: {e}") def paginate_queryset(self, queryset, page_size): with schema_context(self.schema_name): return super().paginate_queryset(queryset, page_size) def get_context_data(self, **kwargs): with schema_context(self.schema_name): context = super().get_context_data(**kwargs) tenant_id = self.kwargs.get('pk') context['tenant_id'] = tenant_id context['appointments'] = Appointment.objects.all() print(context['appointments']) return context In above code the print(context['appointments']) Is giving the exact data but while rendering it in template it shows LINE 1: ...app_appointment"."al_appointment_updated_at" FROM "appointme... and if I left the template empty the error does not show is it something that I'm missing?? I'm trying to get the specific tenant model data in public domain