Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django Rest Framework response give me datatype on M2M field
Working on a GET request from my django DRF backend, I receive a strange response from my m2m field. The response you see here is a response fetching from a Video model Array [ Object { "categories": Array [ "USA", ], "id": 1, "title": "first vid", }, Object { "categories": Array [ "other", ], "id": 2, "title": "second vid", ] Notice the "Object" and "Array" types in the response. Categories and Videos share a M2M relation related to the "categories" field The models: class CategoryVideos(models.Model): class Meta: verbose_name = 'Category' verbose_name_plural = 'Categories' name = models.CharField(max_length=100, null=False, blank=False) def __str__(self): return self.name class Videos(models.Model): category = models.ManyToManyField(CategoryVideos, null=True, blank=True) illustration = models.FileField(null=True, blank=True) video = models.FileField(null=True, blank=True) title = models.CharField(max_length=255, null=True, blank=True) The serializer: class VideoSerializer(serializers.ModelSerializer): categories = serializers.SerializerMethodField() class Meta: model = Videos fields = ["id", "title","categories"] depth=1 def get_categories(self, obj): companies = None try: companies = [obj.name for obj in obj.category.all()] except: pass return companies And the request, coming from Axios on a React Native app const fetchdata = async () => { const response = await axios.get( "https://some_ngrok_url/offerlist" ); const data = await response.data; const setnewdata = await SetData(data); }; fetchdata(); }, []); Can anyone spot the … -
How to convert django base user model date_joined to user local time
How i can convert the the date_joined field from base user model to logged in user local time? I want to get the local user time as i have tried to filter it by using time zone but no luck. -
Django - Querysets - Eficient way to get totals
I have to get totals for diferent type of concepts (Rem, NR, NROS, etc) in the queryset concepto_liq and I'm doing one filter for each type (see the code below), is there a way to make it more efficent? Thank in advance! tmp_value = concepto_liq.filter(tipo='Rem', empleado=empleado).aggregate(Sum('importe')) remuneracion = 0 if not tmp_value['importe__sum'] else int(round(tmp_value['importe__sum'], 2) * 100) tmp_value = concepto_liq.filter(tipo='NR', empleado=empleado).aggregate(Sum('importe')) no_remunerativo = 0 if not tmp_value['importe__sum'] else int(round(tmp_value['importe__sum'], 2) * 100) tmp_value = concepto_liq.filter(tipo='NROS', empleado=empleado).aggregate(Sum('importe')) no_remunerativo_os = 0 if not tmp_value['importe__sum'] else int(round(tmp_value['importe__sum'], 2) * 100) tmp_value = concepto_liq.filter(tipo='ApJb', empleado=empleado).aggregate(Sum('importe')) aporte_jb = 0 if not tmp_value['importe__sum'] else int(round(tmp_value['importe__sum'], 2) * 100) tmp_value = concepto_liq.filter(tipo='ApOS', empleado=empleado).aggregate(Sum('importe')) aporte_os = 0 if not tmp_value['importe__sum'] else int(round(tmp_value['importe__sum'], 2) * 100) -
Django biometric scanning
Is there any library that I can use to add biometric field into a django model field, so that when user plugged in biometric scanner into a computer, that django model field would allow me to scan user finger and store it into a database and even viewing it in a template. I have try using this method: I created a python file into my app and named it: biometric_field.py: Class BiometricField(models.Model): def __init__(self, *args, **kwargs): kwargs['max_length'] = 1000 super().__init__(*args, **kwargs) def db_type(self, connection): return 'binary' And add it to the model like any other field: From .biometric_field import BiometricField Class Primary(models.Model): first_name = models.CharField(max_length=20) second_name = models.CharField(max_length=20) class_of_student = models.CharField(max_length=20) year_of_graduations = Foreignkey(PrimaryAlbum, '''''''''''') finger_print_first = BiometricField() ''''''''' But using that method was completely not scalable, because, there is no way to communicate with a hardware that would allow us to scan user finger, do you have any idea or method that we can use to make that happen in django or any python libraries that is good with django? -
Django URL logical OR misunderstood
I need my django application connect two different URLs to the same view. When I use regular expression, the result is different from what I expect: from django.http import HttpResponse from django.urls import re_path def readme(request): return HttpResponse('My test', content_type='text/plain') urlpatterns = [ re_path(r'^(readme|help)$', readme), ] I should render both http://127.0.0.1:8000/readme http://127.0.0.1:8000/help to the same view. But I receive the following error when entering the URL in my browser: Exception Value: readme() takes 1 positional argument but 2 were given Exception Location: /home/ar/.local/lib/python3.8/site-packages/django/core/handlers/base.py, line 197, in _get_response 191 if response is None: 192 wrapped_callback = self.make_view_atomic(callback) 193 # If it is an asynchronous view, run it in a subthread. 194 if asyncio.iscoroutinefunction(wrapped_callback): 195 wrapped_callback = async_to_sync(wrapped_callback) 196 try: 197 response = wrapped_callback(request, *callback_args, **callback_kwargs) 198 except Exception as e: 199 response = self.process_exception_by_middleware(e, request) 200 if response is None: 201 raise 202 203 # Complain if the view returned None (a common error). -
Django. Access list index in child for loop
How can I change the accessed index of an inner for loop list based on a counter from the outer loop? In normal python I would do something like parent_list = ['One','Two','Three'] child_list = ['A','B','C'] for idx, item in enumerate(parent_list): for child_item in child_list[idx]: print(str(idx), item, child_item) I've been looking at using with and forloop.counters but I either run into the index not being accessed or index not changing. This is what I currently have. {% for item in payout_items %} {% with forloop.counter0 as outer_counter %} <h2>{{ item.market_place }} on {{ item.entry_date }}: {% for item in royalty_items.outer_counter %} <tr> <th scope="row">{{ item.id }}</th> <td>{{ item.entry_date }}</td> <td>{{ item.market_place }}</td> </tr> {% endfor %} {% endwith %} {% endfor %} If I change {% for item in royalty_items.outer_counter %} to {% for item in royalty_items.0 %} I get the first index repeated many times. I can see that outer_counter is incrementing from the output but just need royalty_items to increment the accessed index as well. -
Django - DRF ManyToMany and ForeignKey
I am building an api for entertainment management. The user can create empty project or projects with show, tour and festival. User can also create show and specify project id. A project can contain: Show 0 to * Tour 0 to * Festival 0 to * A Tour can contain: Show 0 to 1 A Festival can contain: Show 0 to * A Show, Tour and Festival necessarily part of a Project. Here are my models: class Project(models.Model): """Models for Projects""" name = models.CharField(max_length=255, unique=True) shows = models.ManyToManyField('Show', blank=True) festivals = models.ManyToManyField('Festival', blank=True) tours = models.ManyToManyField('Tour', blank=True) author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, ) date_created = models.DateTimeField(auto_now_add=True) last_update = models.DateTimeField(auto_now=True) def __str__(self): return self.name class Show(models.Model): """Models for Shows""" name = models.CharField(max_length=255, unique=True) start_date = models.DateTimeField(default=timezone.now, blank=True) end_date = models.DateTimeField(default=timezone.now, blank=True) tours = models.ManyToManyField('Tour', blank=True) festivals = models.ManyToManyField('Festival', blank=True) projects = models.ForeignKey(Project, on_delete=models.CASCADE, default=None) author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, ) date_created = models.DateTimeField(auto_now_add=True) last_update = models.DateTimeField(auto_now=True) def __str__(self): return self.name class Tour(models.Model): """Models for Tour.""" name = models.CharField(max_length=255, unique=True) start_date = models.DateTimeField(default=timezone.now, blank=True) end_date = models.DateTimeField(default=timezone.now, blank=True) production = models.CharField(max_length=255, blank=True) shows = models.ForeignKey(Show, on_delete=models.CASCADE, blank=True, null=True) projects = models.ForeignKey(Project, on_delete=models.CASCADE, default=None) author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, ) date_created = models.DateTimeField(auto_now_add=True) … -
I am working with Number Plate Detection Django web based project
enter image description here Views.py Coe What will be the correct code ? -
No module named 'sklearn' while running django server
I saved a model using joblib and was trying to run server using but it shows no module as sklearn even though it is downloaded in the environment, can anyone please help? -
Cannot render model fields in forloop (Django)
I am using .values() and .annotate()to sum up 2 models fields based on matching criteria. I wrapped this in a forloop in my template to iterate. Problem: I cannot call the model fields anymore. The forloop returns the venue_id instead of the name and the usual approach to call the logo does not work anymore. (these were rendering fine before I used .values() and .annotate(). Makes me think I am missing something in the logic here. Any ideas? Models class Venue(models.Model, HitCountMixin): id = models.AutoField(primary_key=True) name = models.CharField(verbose_name="Name",max_length=100, blank=True) logo = models.URLField('Logo', null=True, blank=True) class Itemised_Loyatly_Card(models.Model): user = models.ForeignKey(UserProfile, blank=True, null=True, on_delete=models.CASCADE) venue = models.ForeignKey(Venue, blank=True, null=True, on_delete=models.CASCADE) add_points = models.IntegerField(name = 'add_points', null = True, blank=True, default=0) use_points = models.IntegerField(name= 'use_points', null = True, blank=True, default=0) Views from django.db.models import Sum, F def user_loyalty_card(request): itemised_loyalty_cards = Itemised_Loyatly_Card.objects.filter(user=request.user.id).values('venue').annotate(add_points=Sum('add_points')).annotate(use_points=Sum('use_points')).annotate(total=F('add_points')-F('use_points')) return render(request,"main/account/user_loyalty_card.html", {'itemised_loyalty_cards':itemised_loyalty_cards}) Templates {%for itemised_loyatly_card in itemised_loyalty_cards %} <img"src="{{itemised_loyatly_card.venue.logo}}"> {{itemised_loyatly_card.venue}} {{itemised_loyatly_card.total}} {%endfor%} Renders -
Get objects where (val1, val2) both in (other_val1, other_val2, ...)
Given the models below class Language(models.Model): name = models.CharField(max_length=255, unique=True) class Profile(models.Model): languages = models.ManyToManyField(Language) class Job(models.Model): language1 = models.ForeignKey( Language, models.CASCADE, related_name='language1' ) language2 = models.ForeignKey( Language, models.CASCADE, related_name='language2' ) If a profile has n languages, usually 2 or more, I need to get the jobs matching these languages in a way that both language1 and language2 are present in the language-user table. The models above generate app_profile, app_job, app_language and app_profile_languages. Below is the query I need to convert to orm: with user_languages as (select language_id from app_profile_languages where profile_id = 6) select * from app_job where language1_id in (select * from user_languages) and language2_id in (select * from user_languages) Here's a sample input and output app_language id name 1 English 2 German 3 Russian 4 Chinese app_job id language1_id language2_id 1 1 4 2 3 2 3 2 3 app_profile_languages id profile_id language_id 1 1 2 2 1 3 3 2 2 4 2 4 If profile_id = 1 is selected, this would be the expected output id language1_id language2_id 2 3 2 3 2 3 -
How do I display all the children of a parent in Django Rest Framework?
I have this model that is a reply to a post. But replies can also have replies and it can carry on forever. If I look at a reply I would like to see all its children and other information related to that specific reply like the user profile. Here is the reply model class Reply(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) post = models.ForeignKey(Post, on_delete=models.CASCADE) video = models.FileField( upload_to=reply_videos_directory_path, null=True, blank=True ) body = models.TextField(max_length=256, default=None) parent = models.ForeignKey( "self", on_delete=models.CASCADE, null=True, blank=True, related_name="replies" ) created_at = models.DateTimeField(auto_now_add=True, verbose_name="Created at") updated_at = models.DateTimeField(auto_now=True, verbose_name="Updated at") class Meta: verbose_name = "post reply" verbose_name_plural = "post replies" db_table = "post_reply" def __str__(self): return self.body[0:30] and here is the serializer for the reply and I can get the information I need for the parent serializer but how do I pull in any children and further related information like the user profile, if there are any children of the reply? class ReplySerializer(serializers.ModelSerializer): images = ReplyImageSerializer(many=True, read_only=True, required=False) post = serializers.SerializerMethodField() profile = serializers.SerializerMethodField() post_images = serializers.SerializerMethodField() class Meta: model = Reply fields = [ "id", "post", "post_images", "video", "images", "body", "parent", "profile", "created_at", "updated_at", ] depth = 1 def get_post(self, obj): post_obj = Post.objects.get(id=obj.post.id) post … -
No Post matches the given query. django blog
everything is ok in the model but when I try to retrieve the object the error "No Post matches the given query." is shown. I don't know what is the problem that shows this error? **Model** class Post(CoreField): .... slug = models.SlugField(max_length=250, unique_for_date='publish') tags = TaggableManager() publish = models.DateTimeField(default=timezone.now) def get_absolute_url(self): return reverse('news:post_detail', args=[self.publish.year, self.publish.month, self.publish.day, self.slug]) **url** path('<int:year>/<int:month>/<int:day>/<slug:post>/', views.post_detail, name='post_detail'), **views** def post_detail(request, year, month, day, post): single_post = get_object_or_404(Post, publish__year=year, publish__month=month, publish__day=day, slug=post ) # List of active comments for this post comments = post.comments.filter(active=True) # Form for users to comment form = CommentForm() return render(request, 'news/post_detail.html', {'post': single_post, 'comments': comments, 'form': form}) when I remove the remove the "int:year/int:month/int:day/" form url it works. but when I pass the "int:year/int:month/int:day/slug:post/" it does't work. What is the proble and where it happens???? -
Django For Loop messing with Javascript ID
I am trying to make a page that shows multiple social media posts on 1 page. Through using a for loop using the Django template tag, I was able to cycle through the posts and they all showed up on the page. However, I have an image slideshow through each post. While the for loop runs, it keeps the same Javascript names for each post. Thus, only the first post is identified and the left and right arrows only work on the first post. I am new to programming and this is my first time. Any help is appreciated. I found a very similar problem here but I am struggling to apply it to my own code. {% for e in social_info %} <div class="testimonial-box" style=" display: block; margin-left: auto; margin-right: auto; width: 530px; height: 655px; margin-top: 60px; box-shadow: 1px 1px 5px; border-radius: 10px; "> <!-- <div style="margin-top: -20px;"> --> <div class="profile-img"> <img src="static/images/profile.png" /> </div> <div> <h3 style="font-weight: bold; float: left; margin-left: 60px; margin-top:-45px; max-width: 50px; text-transform: none; letter-spacing: 1px;"> @{{e.username}} </h3> <h5 style="float: left; margin-left: 65px; margin-top: -20px; color: black;"> {{e.created_at}} </h5> </div> <!-- start of partial --> <script> function Slider() { const carouselSlides = document.querySelectorAll('.slide'); const btnPrev … -
Use django-redis on AWS beanstalk without Elasticache
I wish to create a cache for an app that will be deployed on AWS Elastic Beanstalk (EB for the rest of the question) but cannot find any tutorial that achieves this without using Elasticache. My question is : is it possible to do it? i.e. launch the app with some EB config that will activate django-redis on the server EB will create and use its memory without linking to any external cache? Thanks -
Dynamic annotion in django queryset
I have a Django queryset being created for a graph like the following: obj = Allotment.objects.all().values('dispatch_date').annotate(transaction_no=Count('transaction_no')).\ values('dispatch_date', 'transaction_no') Now I am trying to pass all these values dynamically so I tried this : data = request.data.copy() x_model = data['x_model'] y_model = data['y_model'] obj = Allotment.objects.all().values('{}'.format(x_model)).annotate(transaction_no=Count('{}'.format(y_model))).\ values('{}'.format(x_model), '{}'.format(y_model)) where I just replaced the string values and it gives me the following error: The annotation 'transaction_no' conflicts with a field on the model. How do I dynamically change the field in annotate function ? and apply aggregators such as Sum, Count, etc given that the aggregators are passed through the API as well -
How change a function based view into a class based?
I want to write a category detail view in order to do so i want to change this function based view def CategoryView(request, cats): category_posts = Post.objects.filter(category=cats.replace('-', ' ')) return render(request, 'categories.html', {'cats':cats.replace('-', ' ').title(), 'category_posts':category_posts}) into the class based view. My first question: 1. How to do so?; 2.How also change the url for the view?; path('category/<str:cats>/', CategoryView, name='category'), Here is my models: from django.conf import settings from django.db import models from django.urls import reverse class Category(models.Model): name = models.CharField(max_length=255) def __str__(self): return (self.name) def get_absolute_url(self): return reverse("home") class Post(models.Model): title = models.CharField(max_length=255) body = models.TextField() author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) category = models.ManyToManyField(Category, related_name='categories') def __str__(self): return self.title def get_absolute_url(self): return reverse("post_detail", kwargs={"pk": self.pk}) @property def categories(self): return ', '.join([x.name for x in self.category.all()]) class Comment(models.Model): article = models.ForeignKey(Post, null=True, blank=True, on_delete=models.CASCADE) comment = models.CharField(max_length=140) author = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,) def __str__(self): return self.comment def get_absolute_url(self): return reverse("post_list") When you write an answer, if you don't mind, can you also write an explanation a step by step. And can you also write how did you figure out the answer. A lost a useful materials would be also helpful. Thank you in advance -
Does anyone else have images reload or dissapear everytime they push to Heroku?
Whenever I push my git push to heroku the images that were previously uploaded on the site disappear. It still shows the file path on my backend database but the images actually just go to placeholder image. Has anyone else had this problem? I just have no idea what is causing the problem. I have whitenoise installed. I had an issue earlier with the "simple upload" that heroku offers that was not working, but I deleted it. I don't know if there are remnants of the code somewhere that is messing up my server? -
Django query after a given character
I am trying to filter data from the postgres database connected to my django app. The data in the database column to be filtered is in this format e.g Name|ABC & facilities:Unit|XY Unit I want to write a django query that matches the search text after the last pipe ("|") symbol. How can this be done to return the data in shortest time possible. I tried writing a query Mymodel.objects.filter(name__iendswith=searchTxt) but it's not returning any result. -
How to link multiple Django models to display a form?
I'm building an application to track the assignment of applications to employees. Each department has a list of applications that are utilized by employees and each application has a list of optional options (access levels as needed). I'm struggling with how to put the form together by stitching all these models together. My goal is to display applications grouped by their department with their associated options and status. Am I overthinking this? Is there a simpler way to achieve what I'm trying to do? Example: Department: department.name +---------------------+-----------------------------+------------------------+ | application.name | <applicationsubtype.name> | <statuslevel.status> | +---------------------+-----------------------------+------------------------+ which translates to: Department: IT Application Options (drop down) Status (drop down) +---------------------+-----------------------------+-------------------------------+ | Active Directory | Standard/Admin | Unassigned/Assigned/Revoked | +---------------------+-----------------------------+-------------------------------+ +---------------------+-----------------------------+-------------------------------+ | Microsoft Office | | Unassigned/Assigned/Revoked | +---------------------+-----------------------------+-------------------------------+ Below are the models I've created. I can input data via Django Admin but I would like to display it on a form as described above. models.py from django.db import models class Employee(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) employee_id = models.PositiveIntegerField() department = models.ForeignKey("Department", on_delete=models.SET_NULL, null=True, blank=True) job_title = models.ForeignKey("JobTitle", on_delete=models.SET_NULL, null=True, blank=True) applications = models.ManyToManyField("Application", through="ApplicationManager") def __str__(self): return f"{self.first_name} {self.last_name}" class Department(models.Model): name = models.CharField(max_length=100) manager = models.ForeignKey("Employee", on_delete=models.SET_NULL, null=True, … -
Request URL: http://localhost:8000/user Request Method: GET Status Code: 401 Unauthorized Remote Address: 127.0.0.1:8000 in django rest & react axios
i am tring to do untimate authantication in django and reactjs typescript and is giveng me error like 401 i have doing in 3wek to solve this can you help me please """"""""""django"""""""" models.py from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class Users(AbstractUser): first_name = models.CharField(max_length=256) last_name = models.CharField(max_length=256) email = models.CharField(max_length=256,unique=True) password = models.CharField(max_length=256) username = None USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] class UserToken(models.Model): user_id = models.IntegerField() token = models.CharField(max_length=256) created_at = models.DateTimeField(auto_now_add=True) expired_at = models.DateTimeField(auto_now=True) class Reset(models.Model): email = models.CharField(max_length=255) token = models.CharField(max_length=256) views.py from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import exceptions from .Serializers import UserSerializers from .models import Users, UserToken, Reset from .authentication import create_access_token, create_refresh_token, JWTAuthentication, decode_refresh_token import datetime, random, string from django.core.mail import send_mail class RegisterAPIView(APIView): def post(self, request): data = request.data if data['password'] != data['password_confirm']: raise exceptions.APIException('password do not match!') serializer = UserSerializers(data=data) serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data) class LoginAPIView(APIView): def post(self, request): email = request.data['email'] password = request.data['password'] user = Users.objects.filter(email=email).first() if user is None: raise exceptions.AuthenticationFailed('Invalid credentials ') if not user.check_password(password): raise exceptions.AuthenticationFailed('Invalid credentials') access_token = create_access_token(user.id) refresh_token = create_refresh_token(user.id) UserToken.objects.create( user_id = user.id, token = refresh_token, expired_at = datetime.datetime.utcnow() + datetime.timedelta(days=7) … -
In Django I created two URLs to insert data and retrieve data [closed]
In Django I created two URLs to insert data and retrieve data but As I can check in database data is inserted properly in table but it is displaying in list after running command python manage.py run server In Django I created two URLs to insert data and retrieve data but As I can check in database data is inserted properly in table but it is displaying in list after running command python manage.py run server -
How to change unique_together error message in django model?
Model: class MyModel(models.Model): field1 = models.CharField(max_length=50) field2 = models.CharField(max_length=50) class Meta: unique_together = ('field1', 'field2') Error: UNIQUE constraint failed: field1, field2 I want to change error mesaage to {'field2': 'This value is already exist'} OR How to override unique_error_message() in django model? I try this: def unique_error_message(self, model_class, unique_check): return ValidationError(message='My custom error message') But didn't work. -
Retrieve submitted data Django
I have created this dependent dropdown using plain HTML. When I click on submit, it redirects me to the next page where I have to run a python code based on the selection made in the previous page. I am unable to figure out how to retrieve the submitted data, any help? -
Get objects where (val1, val2) both in (other_val1, other_val2, ...)
Given the models below: class Language(models.Model): name = models.CharField(max_length=255, unique=True) class Profile(models.Model): languages = models.ManyToManyField(Language) class Job(models.Model): language1 = models.ForeignKey( Language, models.CASCADE, related_name='language1' ) language2 = models.ForeignKey( Language, models.CASCADE, related_name='language2' ) How to represent the following sql query to orm expression? with user_languages as (select language_id from core_profile_languages where profile_id = <profile-id>) select * from core_job where language1_id in (select * from user_languages) and language2_id in (select * from user_languages)