Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Receiving data in the serializer from a related model by relation_name in DRF
I have 2 models class News(models.Model) title = models.CharField(max_length=100, null=False) text = models.TextField(null=False) class NewsImages(models.Model) news = models.ForeignKey( to=News, null=True, on_delete=models.CASCADE, related_name='images' ) image = models.FileField( upload_to="news/img/%Y/%m/%d", null=False, ) I need serialize model with related images. I try do it use nested serializers: class NewsImageSerializer(serializers.ModelSerializer): image = Base64ImageField() class Meta: model = NewsImage fields = '__all__' class NewsSerializer(serializers.ModelSerializer): images = NewsImageSerializer(many=True) class Meta: model = News fields = '__all__' But got error: AttributeError at /api/v1/news/ Got AttributeError when attempting to get a value for field `images` on serializer `NewsSerializer`. The serializer field might be named incorrectly and not match any attribute or key on the `News` instance. Original exception text was: 'News' object has no attribute 'images'. As I understand from similar questions, it should work exactly like this via related_name. Why doesn't this work for me, what am I doing wrong? -
Can I add a global query parameter to all methods on all Viewset endpoints in Django Rest Framework?
For some purpose I need to add a query parameter to all DRF API viewset method calls and I need to be able to supply from Swagger. In FastAPI it is easily done with a dependency injection on global level like this: async def code(code: Code = None): """Dependency to add code query parameter to all endpoints""" pass fastapi_app = FastAPI(docs_url=None, title="SAF2 API", dependencies=[Depends(code)]) But I have been struggling with custom filters and middleware in Django, but I am not getting it to work. Filters seem to only apply to GET methods and I don't know a lot about middleware to write one myself. I can put it manually on all endpoints with decorators and stuff but that is all very ugly. My viewset looks like this: class CustomerViewSet(viewsets.ModelViewSet): authentication_classes = [SessionAuthentication, BasicAuthentication] permission_classes = [IsAuthenticated] serializer_class = CustomerSerializer queryset = Customer.objects.all() filter_backends = [ filters.SearchFilter, filters.OrderingFilter, django_filters.rest_framework.DjangoFilterBackend, ] search_fields = ["full_name", "name", "status"] filterset_fields = ["full_name", "name", "status"] Any help or reference to documentation would be appreciated greatly! A nice bonus would be to add custom headers to all requests. -
Multiple Django projects independent from one another - DB migrations writing to wrong DB
I have been working with Django for about three years now and have developed a couple business grade apps which are deployed and doing great. The other day, I created a new project with a new database, etc. I built out the initial models and migrated them to the proper database. However, subsequent migrations are going to a database I built for another app entirely. The two databases aren't on the same host, don't have similar names - they have nothing in common. How is this possible? Is there some connection cache I need to clear? I haven't even had any of the other projects open or running locally- nothing. I'm baffled. -
Implementing Kerberos and LDAP in Django
firstly, i'm very new to Django. I have developed a Django app that includes a ticket system. Users should only see their own tickets. Now this self service system should be connected to the Microsoft account to enable a single sign on. To do this, the Django app must first be connected to Kerberos and then authenticated using LDAP. However, after extensive searching I cannot find any comprehensible documentation that explains the procedure. That's why I'm turning to you with the hope that someone can help me. Many thanks in advance Pablo I tried using the Dkango Documentation and various other "Docs" which were either outdated or incomplete(like the official django documentation) also other helpful threads in here are outdated. -
Custom django model field to upload a file to an external file/cloud host
I want to have a custom model field for file upload to an external hoster, which I can just add to a model. It is important, that I don`t have to edit the admin form, to be form independent. File should not be saved in django's media system. It should directly be uploaded to a file hoster. The hoster than returns file id. This id should be saved to the field. I managed to do this with the following code. But this can`t the best solution. It is too much and to strange code. Let's not talk about dropbox or the dropbox api, it`s just an example. Could be every other cloud/file hoster. My question is about such fields with file upload in django, not about the hoster. I know that there is django-storages and similar packages, but I do not want to use it for reasons. What would be a better solution? class DropboxFileIdWidget(AdminFileWidget): def value_from_datadict(self, data, files, name): uploaded_file = super().value_from_datadict(data, files, name) if uploaded_file: # Determine the path for the temporary file temp_dir = tempfile.gettempdir() temp_file_path = os.path.join(temp_dir, uploaded_file.name) # Check if a file with the same name already exists, and delete it if os.path.exists(temp_file_path): os.remove(temp_file_path) # … -
I can't take value from dictionary in my django project
I have the dictionary shown below: duties = { 1 : 'Crew', 2 : 'Cast', 3 : 'Director', 4 : 'Writers', } `{% with index=person.duty_type %} {{duties.index}} {% endwith %}` The spesific value i choose from dictionary doesn't display in site. I also have tried to write it like this: {{duties.person.duty_type}} None of the solutions i have tried worked -
Django: websockets connection issues
I am having issues making websockets connection in my django application. here is the error message WebSocket connection to 'ws://127.0.0.1:8000/chat/' failed: my javascript file let loc = window.location let wsStart = 'ws://' if(loc.protocol === 'https:') { wsStart = 'wss://' } let endpoint = wsStart + window.location.host + loc.pathname; var socket = new WebSocket(endpoint) socket.onopen = async function(e){ console.log('open', e) } socket.onmessage = async function(e){ console.log('message', e) } routing.py websocket_urlpatterns = [ path('ws/chat/', consumers.ChatConsumer.as_asgi()), ] -
Django-simple-history Records
While using simple_history , it creates multiple history records when more than one field is updated in modal. How to Change above Behaviour in order to that it creates only one history record when more than one field is changed in one go ? -
Django channels' __init__ gets unexpected kwarg "password" -> no websocket connection
This is the condensed user model. I highly assume it is some incompatibility issue with Djangos AbstractUser Class: class CustomUser(AbstractUser, PermissionsMixin, TimeRegistryBaseModel): uuid = models.UUIDField( primary_key=True, default=uuid.uuid4, editable=False) username = None email = models.EmailField(unique=True) gender = models.ForeignKey(Gender, on_delete=models.CASCADE, null=True, blank=True) verified_status = models.BooleanField(default=False) bio = models.TextField(null=True, blank=True) location = models.CharField(max_length=50, null=True, blank=True) birthdate = models.DateField(null=True, blank=True) marital_status = models.ForeignKey(MaritalStatus, on_delete=models.CASCADE, null=True, blank=True) avatar = models.ImageField( upload_to="avatars/", null=True, blank=True) objects = CustomUserManager() USERNAME_FIELD = "email" REQUIRED_FIELDS: List[str] = [] # TODO: think thoroughly what we actually-required when creating a user And this is the error message: Exception inside application: __init__() got an unexpected keyword argument 'password' Traceback (most recent call last): File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/django/contrib/staticfiles/handlers.py", line 101, in __call__ return await self.application(scope, receive, send) File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/routing.py", line 62, in __call__ return await application(scope, receive, send) File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/sessions.py", line 47, in __call__ return await self.inner(dict(scope, cookies=cookies), receive, send) File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/sessions.py", line 263, in __call__ return await self.inner(wrapper.scope, receive, wrapper.send) File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/auth.py", line 185, in __call__ return await super().__call__(scope, receive, send) File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/middleware.py", line 24, in __call__ return await self.inner(scope, receive, send) File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/routing.py", line 116, in __call__ return await application( File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/consumer.py", line 94, in app return await consumer(scope, receive, send) File "/home/dci-student/Desktop/DCIstuff/Projects/PlayPal/.venv/lib/python3.8/site-packages/channels/consumer.py", line … -
In Wagtail, how to deal with singleton pages?
I am developing a wagtail website. There are some pages that have specific design that will exist on exactly one page (e.g. "who are we" with a list of pictures and bio, "how does it work" which integrates some very specific charts in a very specific way, the home page…). Currently, for those pages, I am creating one model/template per page, but it's not perfect: The page has no dynamic content and the url can be chosen ahead of time. I could use a simple static html asset, it won't have the right url (it would be something like domain.com/static/who-are-we.html instead of domain.com/who-are-we) Non-technical editors are confused (why can I create more than 1 "who are we" page?) Since the page is a singleton, referring to it in other pages should be easy. But currently I have to add a field to other pages model and choose the page every time. That's a bummer since I know that there exist one and only one page "who are we", so I'd like to directly integrate it in the template and skip a field in my models. Is there an idiomatic way to deal with this situation in Wagtail? -
increase/decrease quantity as well as change database and decrease the quantity from total stocks
** I want to add quantity feature in my form and model in which I want to update the quantity from the total quantity in the stocks and quantity will be decrease if we add quantity in of any product, ... suppose we have 50 t-shirt stock and customer added 5 so the total quantity will be 45 in stocks. ** models.py # models.py from collections.abc import Collection from django.contrib.auth.models import User from django.db import models from django.core.exceptions import ValidationError class Client(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) mobile = models.CharField(max_length=15) address = models.CharField(max_length=255) def clean_mobile(self): mobile=self.mobile if len(str(mobile))!= 10: raise ValidationError("invalid mobile number") return mobile class Supplier(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) product_name = models.CharField(max_length=255) product_price = models.DecimalField(max_digits=10, decimal_places=2) image = models.ImageField(upload_to='products/') def __str__(self): return self.product_name views.py @login_required def supplier_dashboard(request): if request.method=='POST': product_name=request.POST.get('product_name') product_price=request.POST.get('product_price') image=request.FILES.get('image') data=Supplier.objects.create(user=request.user,product_name=product_name,product_price=product_price,image=image) data.save() supplier=Supplier.objects.filter(user=request.user) else: supplier=Supplier.objects.filter(user=request.user) return render(request, 'enroll/supplier_dashboard.html',{'suppliers':supplier}) supplier_dashboard.html <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <title>supplier_dashboard</title> </head> <body> <div> <h1><u>WELCOME TO YOUR PROFILE</u></h1> <font color="red" size="8">{{request.user.username}} </font> <div> {%if messages%} {% for message in messages%} <div id="message_container" class="alert alert-warning alert-dismissible fade show text-center" role="alert"> **{{message}}** </div> {%endfor%} … -
what will happend if a user submits the old form without refreshing the page after I've made changes to the Django form
I have made some changes to the form of my Django website, for example: some values of thoes checkbox were changed. A user already opened the form before my changes, and he submited the form after making some changes. What will happened? In my local machine with Django 2.2 and Chrome 116.0.5845.110, the form page was refreshed after I clicked the Save button. Thanks! You can ignore the bellowing cause it could be related with my codes. (The refreshed form is not expected, which contains the new changes but a little different. If I open the url of the form page to a new tab, everything works fine) -
I receive an error running pytest on a query set for a proxy model in django
My User model contains the following choices class Roles(models.TextChoices): ACCOUNT_MANAGER = "ACCOUNT_MANAGER", _("Account Manager") CLIENT_MANAGER = "CLIENT_MANAGER", _("Client Manager") ADMIN = "ADMIN", _("Admin") base_role = Roles.ACCOUNT_MANAGER I have then created a proxy model and manager class ACManager(models.Manager): # Ensures queries on the Account Manager model return only Account Managers def get_queryset(self, *args, **kwargs): results = super().get_queryset(*args, **kwargs) return results.filter(role=User.Roles.ACCOUNT_MANAGER) class AccountManager(User): # This sets the user role to Account Manager during record creation base_role = User.Roles.ACCOUNT_MANAGER objects = ACManager() I have the following test @pytest.mark.django_db def test_ac_manager_get_queryset(): # Test setting user roles role = User.Roles.ACCOUNT_MANAGER user = User.objects.create_user(email="test@example.com", password="password123", role=role) # Create an instance of ACManager manager = ACManager() # Call the get_queryset method queryset = manager.get_queryset() # Assert that only users with the ACCOUNT_MANAGER role are in the queryset assert user in queryset assert queryset.count() == 1 When I run the test I get the following error message django.core.exceptions.FieldError: Cannot resolve keyword 'role' into field. Creating users with the different roles works so I am a bit confused as to why this is happening. Any help on resolving this issue would be appreciated. -
Gradual Disk Usage Increase in Django/OpenLiteSpeed on Ubuntu - Seeking Guidance on Identifying and Resolving the Issue
disk usage increased by 1.57 GB in one month I've recently deployed a Django website using the OpenLiteSpeed Ubuntu image on a Hostinger VPS. Over the period from Oct 14th to Nov 14th, I observed a significant 1.57 GB increase in disk space usage, as indicated in the attached image. I'm puzzled by this unexpected growth, as there haven't been any notable changes or additions to the system during this time. I'm using the following : Python 3.10.12 acme==1.21.0 asgiref==3.7.2 attrs==21.2.0 Automat==20.2.0 Babel==2.8.0 bcrypt==3.2.0 blinker==1.4 certbot==1.21.0 certifi==2023.7.22 chardet==4.0.0 charset-normalizer==3.3.0 click==8.0.3 cloud-init==23.3.1 colorama==0.4.6 command-not-found==0.3 ConfigArgParse==1.5.3 configobj==5.0.6 constantly==15.1.0 crispy-bootstrap5==0.7 cryptography==3.4.8 dbus-python==1.2.18 decorator==4.4.2 distlib==0.3.4 distro==1.7.0 distro-info==1.1+ubuntu0.1 Django==4.2.6 django-ckeditor==6.7.0 django-crispy-forms==2.0 django-js-asset==2.1.0 django-mathfilters==1.0.0 django-robots==6.1 filelock==3.6.0 gunicorn==21.2.0 httplib2==0.20.2 hyperlink==21.0.0 idna==3.4 imageio==2.31.5 imageio-ffmpeg==0.4.9 importlib-metadata==4.6.4 incremental==21.3.0 jeepney==0.7.1 Jinja2==3.0.3 josepy==1.10.0 jsonpatch==1.32 jsonpointer==2.0 jsonschema==3.2.0 keyring==23.5.0 launchpadlib==1.10.16 lazr.restfulclient==0.14.4 lazr.uri==1.0.6 MarkupSafe==2.0.1 more-itertools==8.10.0 moviepy==1.0.3 netifaces==0.11.0 numpy==1.26.0 oauthlib==3.2.0 opencv-contrib-python==4.8.1.78 opencv-python==4.8.1.78 packaging==23.2 parsedatetime==2.6 pexpect==4.8.0 Pillow==10.0.1 platformdirs==2.5.1 proglog==0.1.10 psutil==5.9.5 psycopg2==2.9.9 ptyprocess==0.7.0 pyasn1==0.4.8 pyasn1-modules==0.2.1 PyGObject==3.42.1 PyHamcrest==2.0.2 PyICU==2.8.1 PyJWT==2.3.0 pyOpenSSL==21.0.0 pyparsing==2.4.7 pyRFC3339==1.1 pyrsistent==0.18.1 pyserial==3.5 python-apt==2.4.0+ubuntu2 python-debian==0.1.43+ubuntu1.1 python-magic==0.4.24 pytz==2022.1 PyYAML==5.4.1 requests==2.31.0 requests-toolbelt==0.9.1 SecretStorage==3.3.1 service-identity==18.1.0 six==1.16.0 sos==4.5.6 sqlparse==0.4.4 ssh-import-id==5.11 systemd-python==234 tqdm==4.66.1 Twisted==22.1.0 typing_extensions==4.8.0 tzdata==2023.3 ubuntu-advantage-tools==8001 ufw==0.36.1 unattended-upgrades==0.1 urllib3==2.0.6 uWSGI==2.0.22 virtualenv==20.13.0+ds wadllib==1.3.6 zipp==1.0.0 zope.component==4.3.0 zope.event==4.4 zope.hookable==5.1.0 zope.interface==5.4.0 I'm also using PostgreSQL 14.9 Ubuntu 22.04 with OpenLiteSpeed Django Image OpenLiteSpeed 1.7.18 I … -
How to assign the user making the request to a foreign key field in Django models
I'm currently working on a web app similar to discord. I'm trying to set the user who is sending the request to create the server as the owner of the server so that the only thing he wants to enter is details like - name , icon and description. This is my model for server: class Server(models.Model): name = models.CharField(max_length=30) owner = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="server_owner") creation_date = models.DateTimeField(auto_now_add=True) description = models.CharField(max_length=250, null=True, blank=True) member = models.ManyToManyField( settings.AUTH_USER_MODEL, related_name="servers", through='ServerMember') icon = models.FileField( upload_to=server_icon_upload_path, null=True, blank=True) def __str__(self): return self.name def save(self, *args, **kwargs): is_new_server = self._state.adding if is_new_server: super().save(*args, **kwargs) try: member_role = Role.objects.create( name="member", server=self ) server_member = ServerMember.objects.create( user=self.owner, server=self) server_member.role.add(member_role) except Exception as e: print(f"Error creating 'member' role: {e}") if self.id: existing = get_object_or_404(Server, id=self.id) if existing.icon and existing.icon != self.icon: # Delete the old icon existing.icon.delete(save=False) super().save(*args, **kwargs) I've tried to override the perform_create function but it didn't work: class ServerCreateView(generics.CreateAPIView): queryset = Server.objects.all() serializer_class = ServerSerializer permission_classes = [IsAuthenticated] def perform_create(self, serializer): serializer.save(owner=self.request.user) -
How to work in development with Discord OAuth2 live
I have a django app with Discord OAuth2 authentication live on the deployed site. With all the redirects leading back to the deployed app, what is the procedure for doing development/debugging when I can’t see the progress on the localhost? Thanks! -
String Reference not working in model container when using Djongo models
I want to reference CartCustomizationCategory class inside CartCustomization, but the CartCustomizationCategory class is defined below CartCustomization class. I can't change the order of the classes because they are used inside each other. So, I used string reference which works with Django models, but isn't working with Djongo models. Is there a python way to solve this, or I can use something else for this. class CartCustomization(models.Model): class Meta: abstract = True id = models.CharField(max_length=300) name = models.CharField(max_length=100) quantity = models.IntegerField() price = models.IntegerField() customization_categories = models.ArrayField(model_container = "CartCustomizationCategory") class CartCustomizationCategory(models.Model): class Meta: abstract = True id = models.CharField(max_length=300) name = models.CharField(max_length=100) customizations = models.ArrayField(model_container=CartCustomization) class CartItem(models.Model): class Meta: abstract = True id = models.CharField(max_length=300) name = models.CharField(max_length=100) parent_item_id = models.CharField(max_length=12) quantity = models.IntegerField() price = models.IntegerField() customization_categories = models.ArrayField(model_container=CartCustomizationCategory) This is the Traceback Stack Traceback (most recent call last): File "D:\CRUV\craver-backend\craver\manage.py", line 22, in <module> main() File "D:\CRUV\craver-backend\craver\manage.py", line 18, in main execute_from_command_line(sys.argv) File "D:\CRUV\craver-backend\venv\Lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line utility.execute() File "D:\CRUV\craver-backend\venv\Lib\site-packages\django\core\management\__init__.py", line 416, in execute django.setup() File "D:\CRUV\craver-backend\venv\Lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "D:\CRUV\craver-backend\venv\Lib\site-packages\django\apps\registry.py", line 116, in populate app_config.import_models() File "D:\CRUV\craver-backend\venv\Lib\site-packages\django\apps\config.py", line 269, in import_models self.models_module = import_module(models_module_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\rudra\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, … -
Persistant connections doesn't work properly after migrating to Django 4.2
after migrating from django 3.2 to 4.2 I've noticed persistant connections doesn't work the same for the new version. I'm using CONN_MAX_AGE=20 setting For Django 3.2 I can see that oracle doesn't create new sessions in v$session table on each request. But in Django 4.2 there is new session created for each request even though we haven't changed anything in the database connections. STACK: python 3.9.16 django 4.2.5 oracle 19.16.0 Any ideas how to recreate the old behaviour on the new version of Django? -
websocket disconnects after hadnshaking Django Channels
I am coding a real time chat using django and channels My code consumers.py: class ChatConsumer(WebsocketConsumer): def connect(self): room_hash = self.scope["url_route"]["kwargs"]["room_hash"] #self.room_group_name = self.scope["url"]["kwargs"]["hash"] self.send(text_data = json.dumps({ 'type':'room_hash', 'hash': room_hash })) chat_room = Room.objects.get(hash = hash) print(chat_room) self.accept({ 'type': 'websocket.accept' }) def disconnect(self): pass def receive(self, text_data): text_data_json = json.loads(text_data) message = text_data_json['message'] print("Message is "+message) Routing from django.urls import path from . import consumers ws_urlpatterns = [ path('ws/<str:room_hash>/', consumers.ChatConsumer.as_asgi()) ] template script: {{room.hash|json_script:"json-roomhash"}} <script type = "text/javascript"> let room_hash = JSON.parse(document.getElementById("json-roomhash").textContent) let url = `ws://${window.location.host}/ws/${room_hash}/` const chatSocket = new WebSocket(url) chatSocket.onmessage = function(e){ let data = JSON.parse(e.data) let hash = data.hash console.log(hash) } const form = document.querySelector("#form") console.log(form) form.addEventListener('submit', (e)=>{ e.preventDefault() let message= e.target.message.value chatSocket.send(JSON.stringify({ 'message':message })) form.reset() }) </script> And it throws me this error when i try to connect to websocket by hash of the room. raise ValueError("Socket has not been accepted, so cannot send over it") ValueError: Socket has not been accepted, so cannot send over it Exception inside application: Socket has not been accepted, so cannot send over it -
How do I create an emptry LineString in GeoDjango
I am having a problem with the latest version of the GeoDjango extensions in Django version 4.2.6 when I create an empty LineString. The same code is behaving differently than it did in version 4.0.10. The default seems to have switched to creating a Geos object with 3-dimensions rather than the previous 2-dimensions. The following code returns a different WKT object depending on the version of Django I am using. from django.contrib.gis.geos import LineString ls = LineString() ls.wkt This is returning a 3-dimensional object "LINESTRING Z EMPTY". Running exactly the same code on Django 4.0.10 creates a 2-dimension object "LINESTRING EMPTY". Is there anything obvious I am doing wrong? I am also running a slightly newer version of geos-3.12.0 versus 3.11.2 but I cannot see anything is both sets of release notes that describe this change in behaviour. -
JavaScrip Gmail API code not working on Django template
im testing a simple Gmail API integration to my django app and its not working. Im trying to migrate the javascript example from the Google docs website, and migrate it to my django proyect, yet doesnt work, and when trying to use the EXACT SAME CODE with the server initialization provided in the docs, it works, why is not working the Gmail API on my django project?? What ive tested? The error happens to be on the callback of the tokenClient object, is never called and reached, perse because of a code problem. It indeed opens the prompt of the Google Sign-In in both codebases (django and google recomended), but after that is supposed that the callback is going to be called, but is not (on django). function handleAuthClick() { tokenClient.callback = async (resp) => { if (resp.error !== undefined) { // code NEVER REACHED on my django template throw (resp); } document.getElementById('signout_button').style.visibility = 'visible'; document.getElementById('authorize_button').innerText = 'Refresh'; await listLabels(); }; if (gapi.client.getToken() === null) { // Prompt the user to select a Google Account and ask for consent to share their data // when establishing a new session. tokenClient.requestAccessToken({prompt: 'consent'}); } else { // Skip display of account chooser … -
Async function isn't behaving as intended in Django websocket consumer
async def handle_round(self, word_to_guess): # Mark the current active round as inactive if self.current_round: self.current_round.is_active = False await database_sync_to_async(self.current_round.save)() # Create a new round await database_sync_to_async(Round.objects.create)( word=word_to_guess, time_left=self.room.guess_time, room=self.room, ) self.current_round = await self.get_current_round() print('Current round', self.current_round) await self.update_game_state() await self.handle_timer() # Handle timer async def handle_timer(self): print('handle_timer') if self.room and self.player and self.current_round: # Broadcast the initial timer value to the room await self.channel_layer.group_send( self.room_group_name, { 'type': 'update_timer', 'time': self.current_round.time_left, } ) async def update_timer(self,event): print('update_timer') asyncio.ensure_future(self.update_timer_helper(event)) # Separate coroutine to update the timer async def update_timer_helper(self, event): time_remaining = self.current_round.time_left while time_remaining >= 0: # Broadcast the timer updates to the room, including the new player await self.send(text_data=json.dumps( { 'type': 'timer_update', 'value': time_remaining, } )) if time_remaining == 0: break # Sleep for 1 second before the next update await asyncio.sleep(1) # Decrement the time remaining self.current_round.time_left -= 1 await database_sync_to_async(self.current_round.save)() time_remaining -= 1 I'm having some trouble with my django consumer for a game I'm making. When calling handle_timer in handle_round() from the loop in start_game(), it isn't called until after the loop finishes. Why? -
Request Issue With Django On AWS
I have recently been working on developing an application that can answer questions from documents. It has been going well so far, as the project itself works locally, and answers questions with great accuracy. However, when I brought this project over to AWS, it has incredible difficulty answering the questions, always failing with a 504 error. I am receiving the below error from the web.stdout logs, but I am not sure if this is why its failing, or what is going on. https://i.stack.imgur.com/c2zPq.png The project is programmed in python with a Django front end, and Elastic Beanstalk is being used for deployment. The project can be found here: https://github.com/Nessbound/asop_chatbot/tree/stack-overflow I'm not exactly sure where the error is, so I am posting the whole project. Thanks in advance for any help! -
How would I handle another POST request on my site
Hello in my login site I have a form that sends a POST request on submit. this is how I handle the forms POST request in my view def SignUp(request): if request.method == 'POST': stuff goes here else: form = SignUpForm() return render(request, "index.html", {"form": form}) now in my javascript i want to add another POST request that'll check if the current username within a certain is already taken. I made it and sent the POST to my current view where both this POST request will be handled along with the form POST request. what ends up happening is that SignUp() keeps handling both the POST requests. How do I handle two POST requests in one view? Is there a better way to do all of this? (i would preferably want to stay on this url) tried to read about any way to differentiate between POST requests but found nothing. (i started learning django just a few days ago and im completely lost trying to make this work) -
Django / Pytest / Splinter : IntegrityError duplicate key in test only
I know it's a very common problem and I read a lot of similar questions. But I can't find any solution, so, here I am with the 987th question on Stackoverflow about a Django Integrity error. I'm starting a Django project with a Postgres db to learn about the framework. I did the classic Profile creation for users, automated with a post_save signal. Here is the model: class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) description = models.TextField(max_length=280, blank=True) contacts = models.ManyToManyField( "self", symmetrical=True, blank=True ) And this is the signal that goes with it : def create_profile(sender, instance, created, **kwargs): if created: user_profile = Profile(user=instance) user_profile.save() post_save.connect(create_profile, sender=User, dispatch_uid="profile_creation") The project is just starting, and for now I only create users in the admin view. With the post_save signal, it's supposed to create a Profile with the same form. Here is the admin setup : class ProfileInline(admin.StackedInline): model = Profile class UserAdmin(admin.ModelAdmin): model = User list_display = ["username", "is_superuser"] fields = ["username", "is_superuser"] inlines = [ProfileInline] I'm using pytest and Splinter for my test, and this is the integration test that don't work : @pytest.mark.django_db class TestAdminPage: def test_profile_creation_from_admin(self, browser, admin_user): browser.visit('/admin/login/') username_field = browser.find_by_css('form input[name="username"]') password_field = browser.find_by_css('form input[name="password"]') username_field.fill(admin_user.username) …