Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
More than one Django website on IIS server - it is possible?
I'm trying to run a Django website on an IIS server. After several tries, I finally succeeded. It works quite nicely. Now it's time for the next stage with which I have a bit of a problem. My question is: Is it possible to run more than one Django service on an IIS server? If I look at the web.config file, there are references to only one Django website. <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\inetpub\wwwroot\test_3\venv\Scripts\python.exe|C:\inetpub\wwwroot\test_3\venv\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" /> </handlers> </system.webServer> <appSettings> <add key="PYTHONPATH" value="C:\inetpub\wwwroot\test_3" /> <add key="WSGI_HANDLER" value="mysite.wsgi.application" /> <add key="DJANGO_SETTINGS_MODULE" value="mysite.settings" /> </appSettings> </configuration> Especially when each website will be in a separate venv. Thanks for any help and suggestion -
How to prevent increase a field in Django
i have a model in django called products. that have a field called star that store my score of products (from 0 to 5) and i want to not allow to increase more that 5 (or even be negative number). star = models.IntegerField(default=0, max_length=5) <div class="d-flex justify-content-center small text-warning mb-2"> {% with ''|center:item.star as range %} {% for _ in range %} <div class="bi-star-fill"></div> {% endfor %} {% endwith %} </div> what can i do? for example if one of my products have star field with 7 it show 7 star in product page! -
Elasticsearch query not working with custom field
I have two models: class Teacher(models.Model): name = models.CharField(max_length=50) class TeacherSalary(models.Model) teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE) salary = models.IntegerField() year = models.IntegerField() I created two corresponding documents: @registry.register_document class TeacherDocument(Document): class Index: name = 'teachers' settings = { 'number_of_shards': 1, 'number_of_replicas': 0 } class Django: model = Keyword fields = [ 'id', 'name' ] @registry.register_document class TeacherSalaryDocument(Document): name = fields.KeywordField() class Index: name = 'teacher_salary' settings = { 'number_of_shards': 1, 'number_of_replicas': 0 } class Django: model = TeacherSalary def prepare_name(self, instance): return instance.teacher.name When I search for some teachers by name, for example: documents = TeacherDocument.search().query('match', name="John") I have all teachers with name contains "John" for example John Thomson, Thomas John... However, when I do the same search with the TeacherSalaryDocument, I got nothing, i have to search the exact name. For example: documents = TeacherSalaryDocument.search().query('match', name="John") returns [], but documents = TeacherSalaryDocument.search().query('match', name="John Thomson") returns all salary histories of the "John Thomson" teacher. How could I get the salary of all teachers that their names contain "John"? Thank you! -
Django websockets connection failed
I have hosted a django application on Linode which includes a chatting functionality. I am using django-channels to implement that functionality. I am not using any particular technology like Redis, just the inbuilt django thing to implement the websockets because I am just testing the site for now. The following is the chatroom.html file: {% extends 'common_anime_chat/base.html' %} {% load static %} {% block stylesheet %} <link rel="stylesheet" type="text/css" href="{% static 'chatroom.css' %}"> {% endblock stylesheet %} {% block content %} <div class="chat-container"> <div id="chat-messages" style='height: 75vh;'></div> <div id="input-container"> <textarea id="input" rows="1"></textarea> <input type="button" id="submit" value="Send"> </div> </div> {{ request.user.username|json_script:"user_username" }} {{ request.user.profile.profile_picture.url|json_script:"user_pfp"}} <script> const hardcodedProfilePictures = { 'itsmyname': '/media/profile_pictures/profile1.png', 'user123': '/media/profile_picturues/profile2.png', // Add more hardcoded profile pictures here for other usernames }; document.querySelector('#submit').onclick = function (e) { const messageInputDOM = document.querySelector('#input'); const message = messageInputDOM.value; chatSocket.send(JSON.stringify({ 'message': message, 'username': userUsername, 'user_pfp':userPfp, 'room_name':roomName })); messageInputDOM.value = ''; }; const chatMessagesDOM = document.querySelector('#chat-messages'); const userUsername = JSON.parse(document.getElementById('user_username').textContent); // console.log(userUsername) const pathArray = window.location.pathname.split('/'); const roomName = pathArray[pathArray.length - 2]; // Use -1 if the room name is in the last segment let userPfp = JSON.parse(document.getElementById('user_pfp').textContent); // Object to store profile pictures associated with usernames let profilePictures = {}; const chatSocket = … -
How to save settings for each user on the site?
I have a site based on django. And it shows some graphs. Graphs have several settings. I need each user to be able to change these settings for themselves. How is this possible? And another question, is it possible for these parameters to be saved the next time for each user? -
The same code in django cannot run properly
enter image description here 上面注释的部分无法让程序运行会报错AttributeError: 'WSGIRequest' object has no attribute 'get' 而下面可以运行。是编译器的问题的,python版本是 3.8.3 ,django 版本是 4.2,pycharm是2022.3.3 (Professional Edition) 重新编写一样的代码可以运行,但是唯独第一次的那个代码无法运行。 -
Seeking General Django Deployment Advice
This is isn’t a conventional stack overflow question but was seeking help and wanted to ask a good community. I’m trying to deploy my Django app and was wondering what’s a good hosting service to do so. It’s not a large application and doesn’t even use a database at the moment (it will later). So free would be ideal. I’ve tried to follow some tutorials but it never works and I don’t know enough about deployment to debug and fix it effectively. If someone could dm me with Django deploying experience that’d be so good! My name is d.sons#3851 If not any help or advice on here would be greatly appreciated. -
celery nested task (tasks inside tasks)
I wrote 2 update_all_rss task but don't know which one is better. can someone explain it which one should I use? Info: each task is independent and doesn't need other task result. It would be greatly appreciated if you could provide me any suggestion to optimize overall performance of these tasks @shared_task(base=BaseTaskWithRetry, task_time_limit=600) def update_all_rss(): for xml_link_obj in XmlLink.objects.all().iterator(): update_single_rss.delay(xml_link_obj) vs @shared_task(base=BaseTaskWithRetry, task_time_limit=600) def update_all_rss(): xml_links = list(XmlLink.objects.all().iterator()) tasks = (update_single_rss.s(xml_link_obj) for xml_link_obj in xml_links) result_group = group(tasks) result_group() if it helps this is update_single_rss task: @shared_task(base=BaseTaskWithRetry, task_time_limit=120) def update_single_rss(xml_link_obj): channel_qs = Channel.objects.select_related('xml_link').prefetch_related("xml_link__rss_type").filter( xml_link=xml_link_obj) if channel_qs.exists(): channel = channel_qs.get() channel_parser = channel_parser_mapper(xml_link_obj.channel_parser) channel_info = channel_parser(xml_link_obj.xml_link) if channel.last_update != channel_info.get("last_update"): channel.last_update = channel_info.get("last_update") items_parser = items_parser_mapper(xml_link_obj.items_parser) items_info = items_parser(xml_link_obj.xml_link) ItemClass = item_model_mapper(xml_link_obj.rss_type.name) try: with transaction.atomic(): channel.save() items = ( ItemClass(**item, channel=channel) for item in items_info if not ItemClass.objects.filter(guid=item.get("guid")).exists() ) ItemClass.objects.bulk_create(items) except IntegrityError as e: return {"Message": str(e)} return {"Message": f"Channel {channel.title} was Updated"} return {"Message": f"Channel {channel.title} is Already Updated"} return {"Message": f"No channel for {xml_link_obj.xml_link} Exist"} -
Inner funtion gives error in Django Rest Framework
I have inner functions inside the main function with an IF statement but when the if condition is applied it gives this error (AssertionError: The request argument must be an instance of django.http.HttpRequest, not rest_framework.request.Request.) How can I solve this issue? Any help, please? views.py from .api_option23 import api_option23 from .api_option23 import api_option45 @api_view(["GET", "POST"]) def apiscanning(request, qrcode, action, curr_user): if request.method == "GET" or request.method == "POST": if action ==1: #do something elif action ==2: api_option23(parameters) elif action ==3: api_option45(parameters) -
Django: set filter manager at runtime
My Django app stores the same sets of data for multiple different chat servers. Each model has a server as a ForeignKey to track which server the data is from. In my views.py, I have a bunch of manager/model functions like this: def index(request) context = { 'most_pinged': User.objects.get_most_pinged_user(), 'top_emojis': Emojis.objects.get_top_emojis(user1), 'top_channels': Channels.objects.order_by('-messages')[:10] } etc. The problem: I want to make it so that these functions only operate on the data of ONE server at a time, and filter out all of the data from other servers. I'd have to write a bunch of filters, like so: def index(request, server_id): context = { 'most_pinged':User.objects.get_most_pinged_user(from_server=server_id), 'top_emojis': Emojis.objects.get_top_emojis(user1, from_server=server_id), 'top_channels': Channels.objects.filter(server__id=server_id).order_by('-messages') } Is there any way to make it so that instead of having to write a bunch of filters for my manager methods and such, I can just have User/Emoji/Chnanel.objects filter out all of the other server's data from the get-go? Managers can be used to filter data, but not dynamically like this (afaik). I'm willing to be flexible! -
Unable to setup webhook for Whatsapp Cloud API
I am trying to configure my django app url as a webhook in Whatsapp Cloud API to receive messages. On setting up the webhook, the whatsapp sends a request to the url with certain parameters and we have to return one of them to verify our url and then it is added as webhook. The problem is my app's url is not receiving any request from whatsapp. The app is hosted on pythonanywhere. I hit the same url from my browser and its working fine. I ran the same code on my local machine using ngrok and try to set up the url as webhook and it received the request from whatsapp. Furthermore i tried another flask url on pythonanywhere on another account and it also received the request. Hence it's not an issue with code or pythonanywhere also the url is accessable from browser. I am really confused. -
Django 4 - error unable to import ungettext from django.utils.translation
I'm getting the following error when trying to install djangocms-bootstrap4 File "C:\Users\warre\envs\ssenv\ssenv\Lib\site-packages\djangocms_bootstrap4\contrib\bootstrap4_grid\models.py", line 5, in <module> from django.utils.translation import ungettext ImportError: cannot import name 'ungettext' from 'django.utils.translation' (C:\Users\warre\envs\ssenv\ssenv\Lib\site-packages\django\utils\translation\__init__.py) -
Django: Validate DateTimeField based on another DateTimeField
I'd like to validate a DateTimeField based on another DateTimeField in the same mode, like so: class Operation(models.Model): machine = models.ForeignKey(Machine, on_delete=models.CASCADE) start = models.DateTimeField(auto_now_add=True) end = models.DateTimeField( null=True, blank=True, validators=[ MinValueValidator(start) ] ) I get a TypeError exception when POSTing: '<' not supported between instances of 'datetime.datetime' and 'DateTimeField' These are the variables: a datetime.datetime(2023, 1, 10, 0, 25, 29, tzinfo=zoneinfo.ZoneInfo(key='America/Sao_Paulo')) b <django.db.models.fields.DateTimeField: start> self <django.core.validators.MinValueValidator object at 0x104ded4d0> I suppose I need to extract the datetime.datetime from the field, but I can't seem to do it from inside the model validator. Any tips? Thank you. -
Detecting if a site is refreshed on a mobile phone
I developed this js code, that should detect when a site is loaded for the first time or is refreshed. I send this information tho a django view. The problem is that it works on PC but not on mobile devices like phones, tablets, etc... Here is the javascript code: window.addEventListener('load', function() { // Check if the page has been reloaded var isReloaded = sessionStorage.getItem('isReloaded'); if (!isReloaded) { // It's the first visit or a new session sessionStorage.setItem('isReloaded', 'true'); // Perform actions for the first visit here } // Send the reload information to the server var isRefreshed = isReloaded ? 'true' : 'false'; var csrfToken = '{{ csrf_token }}'; $.ajax({ type: "POST", url: '', data: { 'is_refreshed': isRefreshed, 'csrfmiddlewaretoken': '{{ csrf_token }}' // Include CSRF token for security }, dataType: 'json', success: function(data) { // Handle the response from the server here, if needed console.log(data.message); }, error: function(xhr, status, error) { // Handle errors here, if needed console.error(error); } });// Replace with your CSRF token // Make an AJAX request here to send 'isRefreshed' and 'csrfToken' to the server. }); -
Django TypeError: issubclass() arg 1 must be a class when trying to create a simple tag
When trying to create a simple tag in django to reassign a variable in a django template, I am getting the error TypeError: issubclass() arg 1 must be a class. custom_templates.py: from django import template register = template.Library() @register.simple_tag def define(val=None): return val part of my settings.py: ... INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "crispy_forms", "crispy_bootstrap4", "main.apps.MainConfig", "register.apps.RegisterConfig", "main.customtemplates.custom_templates.define" ] ... I believe this is everything interacting with my simple tag, if any other information is required, please let me know. Any help is appreciated! I've tried giving the val argument in my define function a preset value, I've tried removing this, and I've tried giving type suggestions, e.g., def define(val:bool): -
Messing up the event handler in django, help me figure it out
My models: class Product(models.Model): name = models.CharField(max_length=255) owner = models.ForeignKey(User, on_delete=models.PROTECT, related_name='owner') allowed_users = models.ManyToManyField(User) def __str__(self): return self.name class Lesson(models.Model): name = models.CharField(max_length=255) link = models.URLField() time = models.PositiveIntegerField() products = models.ManyToManyField(Product) def __str__(self): return self.name class UserLessons(models.Model): user = models.ForeignKey(User, on_delete=models.PROTECT) lesson = models.ForeignKey(Lesson, on_delete=models.PROTECT) is_view = models.BooleanField(default=False) view_time = models.PositiveIntegerField(default=0) date_view = models.DateField(null=True) def __str__(self): return f'{self.user.username} - {self.lesson.name} I am implementing an event handler that should create a record in the DB when creating a Lesson record @receiver(post_save, sender=Lesson) def create_user_lessons(sender, instance, **kwargs): products = instance.products.all() allowed_users = [] for product in products: for user in product.allowed_users.all(): if user not in allowed_users: allowed_users.append(user) for user in allowed_users: UserLessons.objects.create(user=user, lesson=instance) But I came across the fact that instance.products.all() outputs an empty QuerySet, although it is not empty when creating a record. What is the reason for this behavior and how to solve it? I tried to redefine the save() method, but it didn't help in any way, but an important clarification appeared, instance.products.all() gives an empty qs only for the record that was created at the moment, the rest of the records work fully, when choosing another, everything is saved as needed -
dajngo pagination for products, problem with pagination when query
I'm working on a Django project for building a website, and I'm facing an issue when filtering through a search bar by name; the pagination is not working correctly. When filtering def mart(request): query = request.GET.get('q') temperature = request.GET.get('temperature') if temperature is None: temperature = 150 products = Product.objects.all() if query: products = products.filter(Q(name__icontains=query)) for product in products: latest_log = Log.objects.filter(product_uuid=product).order_by('-date').first() if latest_log: temp = latest_log.course_temp product.temperature = temp else: product.temperature = 0 products = sorted(products, key=lambda x:x.temperature, reverse=True) paginator = Paginator(products, 20) page_number = request.GET.get('page') page_products = paginator.get_page(page_number) product_info_list = [] for product in page_products: latest_log = Log.objects.filter(product_uuid=product,course_temp__lte=temperature).order_by('-date').first() all_productbadges = Productbadge.objects.filter(product_uuid=product) badges_urls = [] if all_productbadges: for productbadge in all_productbadges: badge_id = productbadge.badge_id badge_instance = Badge.objects.filter(label=badge_id).first() if badge_instance: badge_url = badge_instance.url badges_urls.append(badge_url) if latest_log: product_info = { 'product': product, 'latest_log': latest_log, 'badges_urls': badges_urls } product_info_list.append(product_info) print("@@@@@@@@@") print(page_products.next_page_number) context = {'product_info_list': product_info_list, 'page_products': page_products} return render(request, 'courses/mart.html', context=context) paginator = Paginator(products, 20) page_number = request.GET.get('page') page_products = paginator.get_page(page_number) product_info_list = [] for product in page_products: latest_log = Log.objects.filter(product_uuid=product,course_temp__lte=temperature).order_by('-date').first() all_productbadges = Productbadge.objects.filter(product_uuid=product) badges_urls = [] if all_productbadges: for productbadge in all_productbadges: badge_id = productbadge.badge_id badge_instance = Badge.objects.filter(label=badge_id).first() if badge_instance: badge_url = badge_instance.url badges_urls.append(badge_url) if latest_log: product_info = { 'product': product, 'latest_log': … -
Django app on Google App Engine not connecting to Google Cloud SQL
I've encountered an issue when deploying my Django application on Google App Engine and trying to connect it to Google Cloud SQL. The application works perfectly on my local system, but when deployed, I get the following connection error: could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432? This is the code snippet for my settings.py file: DATABASES = {"default": env.db()} # If the flag as been set, configure to use proxy if os.getenv("USE_CLOUD_SQL_AUTH_PROXY", None): DATABASES["default"]["HOST"] = "127.0.0.1" DATABASES["default"]["PORT"] = 5432 # [END gaestd_py_django_database_config] # [END db_setup] # Use a in-memory sqlite3 database when testing in CI systems # TODO(glasnt) CHECK IF THIS IS REQUIRED because we're setting a val above if os.getenv("TRAMPOLINE_CI", None): DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", "NAME": os.path.join(BASE_DIR, "db.sqlite3"), } } I have followed this guide for setting up my application on google app engine. These are all the troubleshooting steps I have tried so far - Enabled the Cloud SQL Admin API. Added Cloud SQL Admin role to the App Engine service account. Tested Connectivity from App Engine to SQL instance. Tried Restarting the Cloud SQL instance and App Engine Instance. Checked … -
External database in django Admin Panel
Is it possible to manipulate External database through django admin panel without migration? I have such database: 'cook_db': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'cook_db', 'USER': 'postgres', 'PASSWORD': '123456', 'HOST': '127.0.0.1', 'PORT': '5432' } All tables I added into model.py: ... class Recipes(models.Model): id_subcategory = models.ForeignKey( Categories, models.DO_NOTHING, db_column='id_subcategory') id_recipe = models.AutoField(primary_key=True) name = models.TextField() img_url = models.TextField() grade = models.IntegerField(blank=True, null=True) time = models.IntegerField(blank=True, null=True) class Meta: managed = False db_table = 'recipes' ... But When I tried to register that model (admin.site.register(Recipes)), I catch that error: OperationalError at /admin/MainSite/recipes/. no such table: recipes -
DJANGO HTML Elements and Javascript
I'm trying to implement a "hover image" effect on a website drive by Django. Each model in my database contains 2 distinct images. I'd like to have the image change when the user hovers over the "default image" and have it change to the "hover image". What's happening instead is only the first image is changing to the hover image. If the user hovers over any other image on the page, the first image at the top of the page is the one that changes. Here's my HTML {% for element in records %} <div class = "model"> <img src="{{element.default_image}}" onmouseover="hoverImage();" onmouseout="defaultImage();" width="120"></div> Here's my JS const imgElements = document.querySelectorAll('.model'); for (let i = 0; i < imgElements.length; i++) { const currentElement = imgElements[i]; function hoverImage() { currentElement.src = '{{element.hover_image}}'; } function defaultImage() { currentElement.src = '{{element.default_image}}'; } } This only changes the first element in the model no matter what image the user hovers over -
Why don't frameworks like Django, Express and others often use class diagrams with UML?
Which software engineering and systems design tool to use in framworks like Django? I see that languages like Java, C# and C++ use UML class diagrams. But I don't see it in Python and Javascript. How then to architect these systems? I've been searching for a approach to deal with django project with UML tools, but without success. Keep in mind that I'm a beginner in Django. -
Response times long for multiple users in Cloud Run for a Django application
I have a Django Rest Framework application which is hosted in Cloud Run. The normal response times for requests are around 100-200ms but no matter what I try I cannot get the same response times for multiple users. I have conducted load testing with Jmeter: for 200 users the best I can get is 1500ms average response time and for 500 around 4000ms (these are for "hot" instances). I have tried setting different values for gunicorn workers and thread (such as setting the max concurrency the same as # of cores * # of threads and setting the workers count the same as the number of CPUs and 2 * # of CPUs + 1) as well as trying with different CPU, memory and max instances and concurrent requests settings. I also checked that the Cloud SQL has sufficient CPU. What could be the bottleneck here? -
Email service with python + django deployment
I have a personal project, it's email service on django I already made it, but i have one question How can i connect this service to the web of other emails? Like i can send email from my service to gmail, and from gmail to my service There are nothing about it in the internet. The only one i saw, that i need to configure email server (?) Can you give me a roadmap of how can i do this? BIG NOTICE: IF YOU HAVE A BAD DAY OR SOMETHING ELSE, DO NOT ANSWER THIS QUESTION, OR DO NOT GIVE ANSWERS LIKE "YES YOU NEED TO CONFIGURE A EMAIL SERVER" THANKS IN ADVANCE -
Django HttpResponseNotFound Not Displaying Correctly in View
I am working on a Django project where I have a view called 'chapterPage' that is supposed to display a specific chapter. If the chapter with the given primary key (pk) doesn't exist, I want to return an HttpResponseNotFound response. However, I am encountering an issue where the "Chapter not found" is not being displayed when the chapter is not found. Code snippets: views.py: from django.http import HttpResponseNotFound from .models import Chapter def chapterPage(request, pk): try: chapter = Chapter.objects.get(id=pk) except Chapter.DoesNotExist: return HttpResponseNotFound("Chapter not found") urls.py: urlpatterns = [ path("chapter/<str:pk>/", views.chapterPage, name="chapter"), ] The chapter link on the other webpage: <div> <a href="{% url 'chapter' chapter.pk %}">{{chapter.number}}</a> </div> I made sure that the chapter exists in the database with the intended pk. Also, when I'm trying to search for a chapter using the URL 'http://127.0.0.1:8000/chapter/5933/' the terminal returns 'Not Found: /chapter/5933/m' or 'Not Found: /chapter/5933/n', basically an intended URL with a random character afterward. I am expecting to get HttpResponseNotFound("Chapter not found") if the chapter is not found. P.S. I have just started learning so any help is apreciated! -
Transfer the Django project to another computer and create a local network
I have created a Django project on my laptop with Pycharm and now I want to transfer it to a computer on the local network and use it as a network. All steps including: 1- Installing Python with the same version on the laptop 2- Creating a virtual environment with the same name as the virtual environment of the project 3- Copy the whole project in the new project 4- Of course, copy the packages of the virtual environment (do I have to install them?) 1- ALLOWED_HOSTS=['*'] 2-py manage.py runserver 0.0.0.0:8000 I have done it correctly. But the speed of running the project in the browser is very low. please guide me. Thanks for your help dear friends