Django community: Django Q&A RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django - Query with extra method that use python Function
I would like to make a query in Django that use a function that take parameters from db e from python program. The function is shown below: > def myFunc(a, b): > val = mathematical expression with a and b > return val I would like that: a comes from myTable (represent the field 'num') b comes from python Code class myTable(models.Model): num = models.IntegerField(default=0) I would like to do a query similar to this in views.py: b = 4 #it must be variable c = 10 #it must be variable myTable.objects.all().extra(select = {'new_param' : myFunc(num , b)}, where = ['new_param > %d'], params = [c]) How can I do that? Thanks -
I want to put django's object in the templapates JavaScript, but I can't What should I do?
class KcalDetailView(DetailView): model = User context_object_name = 'target_kcal' template_name = 'kcalculatorapp/detail.html' def get_context_data(self, **kwargs): kcl = self.request.user.kcal context = super().get_context_data(**kwargs) i = 0 kcal_list = [] while i < 13: i = i + 1; if kcl.goal == 'diet': kcal_list.append((kcl.weight -round((500/7000)*i,2) )) else: kcal_list.append((kcl.weight + round((500 / 7000) * i,2))) context['kcal_list'] = kcal_list return context https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/line-labels this chart use. templates.html . . . <script> . . . series: [{ name: 'a', data: {{ kcal_list }} // this !!! }] }); </script> For example kcal_list = [ 10, 13, 15, 16, 20 ] It's in the form of a list. And data: [10, 13, 15, 16, 20] Why does it look like this? data : {{kcal_list}} is not possible? What should I do? -
Django filter datetime with timezone field with date only
I have a field in django model: "created_at" which is datetime with timezone (example: 2022-08-09 14:03:18.467482+02). In my app, I have a form where user selects date only (example: 2022-06-09). I'm trying to filter that field in my view like this: res = MyObject.objects.all() res = res.filter(created_at = date) I'm getting the following error: RuntimeWarning: DateTimeField Mybject.created_at received a naive datetime (2022-06-09 00:00:00) while time zone support is active. What is the best way to to filter my object with user input date? Do I need to add timezone to user selected date and how? -
object to json including textfields and arrayfields
So we are storing from frontend to DB array of multiple selections as String with pipe seprator. To call it for API view we take all models to a textfield() and serialize it to JSON the problem with models that should be iterated in are still pipe separator and i'd like to have it as an array of string not as a total string pipe separated class PublishedInfo(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) information= models.OneToOneField( Property, on_delete=models.CASCADE, primary_key=True, ) issue_date = models.DateTimeField(auto_now=True) info = models.TextField() class Meta: verbose_name = 'Published Info' verbose_name_plural = 'Published Info' def __str__(self): return self.information.information_name def user_is_authorized(self, user): """Checks if user allowed to edit this property""" if user.manager: user_properties = UserProperty.objects.filter(user=user).filter(property=self.information).first() return user_properties is not None return self.user == user then info are serialized class PublishedInfoSerializer(serializers.ModelSerializer): facts = StringJsonField() class Meta: model = info fields = '__all__' and lastly called from views @api_view(['GET', ]) @permission_classes([IsAuthenticated]) def get_published_info(request, property_id, info_type): selected_published_info = PublishedInfo.objects.filter(information__id=property_id).first() if info_type == 'json': serializer = PublishedFactsSerializer(selected_published_facts, many=False) return Response(serializer.data['info'], status=status.HTTP_200_OK) now json response always return some multiple fields like this FieldModel : "data | data | data | data" and i tried different solution to convert it in views or in serializer but then … -
Filtering and searching with Django Rest Framework
I'm doing my first DRF project and wondered if it's possible to use the DjangoFilterBackend for filtering specific fields and use a search Filter at the same time. So a request would look something like: http://localhost:8000/api/v1/test/?search=test&id=27&author=2672 Is it possible to do this with DjangoFilterBackend or would I have to write my own filter logic? If you need more information on the project itself or my code just let me know :) -
Django SystemCheckError templates.E003
All of a sudden I'm getting this weird error when trying to start a django app. Everything works fine, then I commit my code and app isn't working anymore. I couldn't find any helpful info, anyone know what could cause this? app_1 | ?: (templates.E003) 'admin_list' is used for multiple template tag modules: 'django.contrib.admin.templatetags.admin_list', 'django_admin_lightweight_date_hierarchy.templatetags.admin_list' -
Why does this django/react project not update
I'm currently following a tutorial for a django/react project. I'm using python .\manage.py runserver to run it and it works, but when i try to make changes to my code and save the files, the page dosen't update. Even if i close the server and run it again the page remains the way it was previously. I tried many solutions but nothing seems to work. I left the github repository if you need to see my code. https://github.com/Andreiosup/Music_app -
What is the best to way to add an already hosted web app on digital ocean to google cloud sdk appengine
Well am trying to host my Django 3.8 website app that's already hosted on digital ocean on the google app store. Which i would just want to host the app on google play store but wouldn't want to use any of the resource of the cloud app-engine sdk! since my data base in hosted on digital ocean , if am to use the google app-engine would it mean that I would have to upload my whole project on cloud app engine ? meaning I would have to set up another database since am using PostgreSQL to store users data, but google cloud currently offer datastore sql! which am thinking of how possible i could merge that two database, would it course a problem for my app since I've already started collecting users data on the PostgreSQL database. Is it possible to just link my app to the appstore without having to pushing the whole app into app engine ? to keep consistency with my current database ! Am puzzled on how to go about this since after reading some of the docs of google cloud app-engine ! I need help on this. -
Why my project uwsgi.ini is throwing Internal Server Error?
I am configuring a Django Nginx Server. Up to this stage: uwsgi --socket ProjetAgricole.sock --module ProjetAgricole.wsgi --chmod-socket=666 everything is working fine. However, after configuring the .ini file, and run the uwsgi --ini ProjetAgricole_uwsgi.ini file,I am getting this ouput [uWSGI] getting INI configuration from ProjetAgricole_uwsgi.ini. But when I open the app from the browser I am getting Internal Server Error Here is my .ini file: [uwsgi] # Django-related settings # the base directory (full path) chdir = /home/dnsae/my_project/ProjetAgricole/ # Django's wsgi file module = ProjetAgricole.wsgi # the virtualenv (full path) home = /home/dnsae/my_project/my_venv # process-related settings # master master = true # maximum number of worker processes processes = 10 # the socket (use the full path to be safe socket = /home/dnsae/my_project/ProjetAgricole/ProjetAgricole.sock # ... with appropriate permissions - may be needed chmod-socket = 666 # clear environment on exit vacuum = true # daemonize uwsgi and write message into given log daemonize = /home/dnsae/my_project/uwsgi-emperor.log I restarted the server but still I am getting the same error. Please assist me. -
Store data in Django server after redirect to linked in OAuth
I am developing an application with LinkedIn Log In with OAuth. In my view, I send a state (random string) in the linkedin request and then I want to compare it with the state received in the linkedin response. I tried to store the state on a session request.session['l_state'] = random_string but after the moment the web page went to the linkedin.com domain, to do the authentication, that data was lost. How can I store that value on the server without loosing it? -
Django CSRF verification failed with nginx reverse proxy
I am desperate. I have a https server that redirects traffic to my local https server. My university runs a reverse proxy that forwards the requests my nginx: The local https server is only visible from the vpn. They do that so that I do not have to care about the keys management and I can just plug some generic ones. When I on the VPN the external server works as expected but when I am out of the VPN the external server returns CSRF cookie not set. I have checked basically everything and read all the CSRF verification failed. Request aborted. posts here. The url in the external server is (anonymized): https://project.uni.edu/ The url of the internal server (anonymized): https://project_internal.uni.edux/ The configuration of the nginx: server { listen 443 ssl; server_name project.uni.edu localhost; ssl_certificate /code/staticfiles/cert/project_name.pem; ssl_certificate_key /code/staticfiles/cert/project_name_key.pem; location / { proxy_pass http://web:8000; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; } location /static/ { alias /code/staticfiles/; } location /media/ { alias /code/mediafiles/; } } My settings in the django file are: CSRF_TRUSTED_ORIGINS = ["https://project.uni.edu/","https://project_internal.uni.edux/"] # SESSION_COOKIE_SECURE= True CSRF_COOKIE_HTTPONLY = False SESSION_COOKIE_DOMAIN= "project_internal.uni.edux" -
How to access model's verbose name in a serializer?
I want to access verbose name of models to put it as a key in serializer. But I can't find a way to do it. My models are: class ProductCategory(models.Model): name = models.CharField(max_length=150, unique=True) created_at = models.DateTimeField(default=timezone.now) modified_at = models.DateTimeField(default=timezone.now) def __str__(self): return self.name class DeviceTypeCategory(ProductCategory): product_category = models.ForeignKey(ProductCategory, on_delete=models.CASCADE, related_name="device_types") class Meta: verbose_name = _("Device type") verbose_name_plural = _("Device types") class DeviceBrandCategory(ProductCategory): product_category = models.ForeignKey(ProductCategory, on_delete=models.CASCADE, related_name="device_brands") class PartTypeCategory(ProductCategory): product_category = models.ForeignKey(ProductCategory, on_delete=models.CASCADE, related_name="part_types") And my serializer: class ProductCategorySerializer(serializers.ModelSerializer): device_types = serializers.StringRelatedField(many=True) device_brands = serializers.StringRelatedField(many=True) part_types = serializers.StringRelatedField(many=True) class Meta: model = ProductCategory fields = ('name', 'device_types', 'device_brands', 'part_types') Any suggestions would help. I would also be glad to hear out other ideas on how to create categories model. I've tried django-mptt, but I need product to belong to multiple subcategories. The django-polymorphic-mptt could have help. But I couldn't find proper documentation. -
What did mean by AttributeError at /login_user/?
My target is to get all the products a user added to the cart, that's why I decided to fetch the ShopingCart model from the context processor. And I added it to the context processor, and it worked well. But the problem is when I try to log out, then I get an error. Where did the actual problem occur? help me😢... models.py: class ShopingCart(models.Model): User = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='UserShoppingCartRelatedName',on_delete=models.CASCADE) Product = models.ForeignKey(Products, related_name='ShoppingCartRelatedName',on_delete=models.CASCADE) context_processors: def ShoppingCart(request): return {"ShoppingCart":request.user.UserShoppingCartRelatedName.all()} error: AttributeError at /login_user/ 'AnonymousUser' object has no attribute 'UserShoppingCartRelatedName' Request Method: GET Request URL: http://127.0.0.1:8000/login_user/ Django Version: 4.0.4 Exception Type: AttributeError Exception Value: 'AnonymousUser' object has no attribute 'UserShoppingCartRelatedName' Exception Location: D:\1_WebDevelopment\17_Ecomerce Website\ecomerce site\env\lib\site-packages\django\utils\functional.py, line 259, in inner Python Executable: D:\1_WebDevelopment\17_Ecomerce Website\ecomerce site\env\Scripts\python.exe Python Version: 3.9.5 Python Path: ['D:\\1_WebDevelopment\\17_Ecomerce Website\\ecomerce site', 'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39\\python39.zip', 'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39\\DLLs', 'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39\\lib', 'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39', 'D:\\1_WebDevelopment\\17_Ecomerce Website\\ecomerce site\\env', 'D:\\1_WebDevelopment\\17_Ecomerce Website\\ecomerce ' 'site\\env\\lib\\site-packages'] Server time: Tue, 09 Aug 2022 11:48:23 +0000 -
django.core.exceptions.ValidationError: ['“1” is not a valid UUID.']
Whenever I am running the server I am getting the error django.core.exceptions.ValidationError: ['“1” is not a valid UUID.'] I have used UUID v4 to change the user id to a random id. But my code is not working. I have deleted and re-migrated migrations many times. But no improvement at all? how can I fix the probelm? #models.py from django.db import models from django.contrib.auth.models import AbstractBaseUser,PermissionsMixin,BaseUserManager import uuid class CustomUserManager(BaseUserManager): def _create_user(self, email, password, first_name, last_name, mobile, **extra_fields): if not email: raise ValueError("Email must be provided") if not password: raise ValueError('Password is not provided') user = self.model( email = self.normalize_email(email), first_name = first_name, last_name = last_name, mobile = mobile, **extra_fields ) user.set_password(password) user.save(using=self._db) return user def create_user(self, email, password, first_name, last_name, mobile, **extra_fields): extra_fields.setdefault('is_staff',True) extra_fields.setdefault('is_active',True) extra_fields.setdefault('is_superuser',False) return self._create_user(email, password, first_name, last_name, mobile, password, **extra_fields) def create_superuser(self, email, password, first_name, last_name, mobile, **extra_fields): extra_fields.setdefault('is_staff',True) extra_fields.setdefault('is_active',True) extra_fields.setdefault('is_superuser',True) return self._create_user(email, password, first_name, last_name, mobile, **extra_fields) # Create your User Model here. class User(AbstractBaseUser,PermissionsMixin): # Abstractbaseuser has password, last_login, is_active by default id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) email = models.EmailField(db_index=True, unique=True, max_length=254) first_name = models.CharField(max_length=240) last_name = models.CharField(max_length=255) mobile = models.CharField(max_length=50) address = models.CharField( max_length=250) is_staff = models.BooleanField(default=True) # must needed, otherwise you won't … -
Send message to all Users in Django
i was about to create a function that sends message to all members Using forloop but then i thought that this method gonna take alot of time in process if there is a plenty of members... so i came to ask if is there any better method to ignore forloop and smooth the process. Model: class TblExamNotification(models.Model): exam = ForeignKey(TblExam,on_delete=models.CASCADE,blank=True, null=True) user = ForeignKey(Members,on_delete=models.CASCADE,blank=True, null=True) is_seen = BooleanField(default=False) def __str__(self): return str(self.id) Views: for member in memebers.exclude(member = request.user): notif_obj = Members.objects.create(user=member , exam=exam_obj) notif_obj .save() -
Unicode slug dose not work after deploying in iis8
i need help to solve my problem, i deployed a django web app in iis 8 that contains Persian slug, in development everything ok but when i deployed the app in iis 8, the app urls that contains Persian Unicode characters are not working. this is my url.py from . import settings from django.conf.urls.static import static from django.contrib import admin from django.urls import path, include, register_converter from .views import * from django.urls.converters import SlugConverter class CustomSlugConverter(SlugConverter): regex = '[-\w]+' register_converter(CustomSlugConverter, 'custom_slug') urlpatterns = [ path('admin/', admin.site.urls), path('dashboard/', include('tour.urls')), path('ckeditor/', include('ckeditor_uploader.urls')), path('', IndexPage, name='index-page'), path('tour/<int:id>/custom_slug:Slug>', TourDetail, name='tour-detail'), path('hotels/<int:id>/<custom_slug:Slug>', HotelDetail, name='hotel-detail') ] in my models.py Slug = models.SlugField(max_length=200, unique=True, null=False, verbose_name='لینک سئو') all URLs with English slug work but only Unicode slug dose not work in deployment, in development everything okay. thanks for your attention and replies -
UTF8 charset is not working in Django project
In my Django project, Russian Cyrillic symbols stopped working. For example, if I set some Cyrillic symbols to one variable and print it, string = "ввв" print(string) it is giving an error: UnicodeEncodeError: 'charmap' codec can't encode characters in position 1-3: character maps to <undefined> I tried this expression in my different Django project, and in that project, it is working well without any errors. -
Suggestions on improving a form view
I'm building an app where the user enters data and then gets redirected to a page that shows results based on their input with some simple equations. However, every time I refresh the results page, a new model instance is saved on the database. Is there another (more efficient and effective) way of passing the data from this view to another view where I have access to the instance of that model submitted through the form view? What's the Django way of passing form data to a view? The only limitation is I don't want user authentication so using self.request.user is not an option unless it can be implemented in a way that doesn't require users to sign up and sign in. I'm still somewhat new to Django so any pointers to obvious solutions that I'm overlooking would be greatly appreciated. This is the view that processes the model form: def createcalculation(request): form = CalcForm() if request.method == 'POST': form = CalcForm(request.POST) if form.is_valid(): item = form.save() m_data = get_object_or_404(Calculate, id=item.id) context = {'c_data': form.cleaned_data, 'm_data': m_data} return render(request, 'calc/res_ca.html', context) context = {'c_form': form} return render(request, 'calc/calc.html', context) -
django - AttributeError: 'function' object has no attribute 'as_view'
i'm a newbie and i can't fix this: def UserList(ListView): model = User template_name = 'core/users.html' path('users/', views.UserList.as_view(), name="user_list"), AttributeError: 'function' object has no attribute 'as_view' -
search for django-objects tagged with all tags in a set
In my django-project have a search function where you can specify tags, like "apple, banana" and by that query for objects of a certain model, tagged with taggit. When I do: tag_set = Tag.objects.filter(Q(name__in=tag_list)) query_set = Model.objects.filter(Q(tags__in=tag_set)) this gives me objects tagged with either "apple" OR "banana". But I want the AND operator... I tried: query_set = Model.objects.filter(reduce(operator.and_, (Q(tags__in=x) for x in tag_set))) but then I get 'Tag' object is not iterable. Any help? -
How to have an optional character field in a django form, but validate it so that an empty string is not allowed?
I have a form for a PATCH request similar to the following: class SampleForm(Form): optional_field = CharField(required=False, validator=[optional_text_field_validator]) This is the validator- def optional_text_field_validator(text): if len(text) == 0: raise ValidationError("This field cannot be empty") I have also tried- def optional_text_field_validator(text): if text == 0: raise ValidationError("This field cannot be empty") I am doing this so that it is not mandatory to include the optional_field in a request, but when it is present, it's value cannot be an empty string. However, the form validation is passing with both the above approaches (is_valid returns True), when it should be failing. How do I implement this? -
Schedule automated jobs in Django
Anyone knows how to schedule a Django script to run at a certain date and time? Example: User enters someone’s contact info on frontend, Django backend receives the form data, but doesn’t send the contact an email until 48 hours later. Anyone has an idea? I saw Cron, but looks like Cron needs to be executed and doesn’t automatically execute on its own? Just need help learning the scheduling feature. -
Why does my js function only run if called in the file and not on a onload?
It has been a while since I havent used JS and when I try to get my function to run onload nothing happens it should just print numbers to the console. It works if I call the function in the js file but not if I am trying to do a onload and pass parameters do I have to call the function in the file or can I call it in the html doc only? I am using Django if this affects anything. HTML <canvas id="homepage-stockGraph" style="background-color: white;" onload="test(1, 2, 3, 4)"></canvas> then I call this at the bottom of the page <script src="{% static 'js/canvas.js' %}"></script> Here is all of the js function test(x1, y1, x2, y2) { console.log('x1: ' + x1, + ', y1: ' + y1 + ', x2: ' + x2 + ', y2: ' + y2 ); } -
Nested subquery in django ORM
I need to transform this query to django, but I can't figure out how. SELECT SUM(income) FROM ( SELECT COUNT(keyword)* CASE WHEN country='ca' THEN 390 WHEN country='fi' THEN 290 WHEN country='it' THEN 280 WHEN country='nl' THEN 260 ELSE 250 END AS income FROM analytics_conversions WHERE keyword = 'online' AND click_time BETWEEN '2022-06-01' AND '2022-06-30' GROUP BY country) as _ Now I have this code, but it returns multiple rows. These rows should be summed and return only that one row to be used in a subquery. keywords_conversions_params = { 'keyword': OuterRef('keyword'), 'keyword_type': OuterRef('keyword_type') } keywords_conversions_value = Conversions.objects.filter( **keywords_conversions_params).order_by().values('keyword').annotate( value=Count('pk') * Case( When(country='ca', then=350), When(country='fi', then=290), When(country='it', then=280), When(country='nl', then=260), default=250 )).values('value') -
How can I generate a random unique User id value in django user model and show it on django admin?
I have a Model in django. I just extended the AbstractBaseUser and added some custom fields in the with BaseUserManager. Now I need to generate a unique Id as primary key and need to show it on django admin..How can I do that? my model is given below. from django.db import models from django.contrib.auth.models import AbstractBaseUser,PermissionsMixin,BaseUserManager class CustomUserManager(BaseUserManager): def _create_user(self, email, password, first_name, last_name, mobile, **extra_fields): if not email: raise ValueError("Email must be provided") if not password: raise ValueError('Password is not provided') user = self.model( email = self.normalize_email(email), first_name = first_name, last_name = last_name, mobile = mobile, **extra_fields ) user.set_password(password) user.save(using=self._db) return user def create_user(self, email, password, first_name, last_name, mobile, **extra_fields): extra_fields.setdefault('is_staff',True) extra_fields.setdefault('is_active',True) extra_fields.setdefault('is_superuser',False) return self._create_user(email, password, first_name, last_name, mobile, password, **extra_fields) def create_superuser(self, email, password, first_name, last_name, mobile, **extra_fields): extra_fields.setdefault('is_staff',True) extra_fields.setdefault('is_active',True) extra_fields.setdefault('is_superuser',True) return self._create_user(email, password, first_name, last_name, mobile, **extra_fields) class User(AbstractBaseUser,PermissionsMixin): email = models.EmailField(db_index=True, unique=True, max_length=254) first_name = models.CharField(max_length=240) last_name = models.CharField(max_length=255) mobile = models.CharField(max_length=50) address = models.CharField( max_length=250) is_staff = models.BooleanField(default=True) is_active = models.BooleanField(default=True) is_superuser = models.BooleanField(default=False) objects = CustomUserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['first_name','last_name','mobile'] class Meta: verbose_name = 'User' verbose_name_plural = 'Users'