Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
how can I get related users, of a given team? DRF
How can I get the users that are to a team, Ex: where Team master = 1 for example this is my models : from django.db import models from users.models import CustomUser # Create your models here. class Team(models.Model): master = models.ForeignKey(CustomUser, on_delete=models.CASCADE) name = models.CharField(null=False, blank=False, max_length=255) comment = models.CharField(null=True, blank=True, max_length=255) class TeamUser(models.Model): team = models.ForeignKey(Team, on_delete=models.CASCADE) user = models.ForeignKey(CustomUser, on_delete=models.CASCADE) My serializer : from rest_framework import serializers from apps.teams.models import Team, TeamUser class TeamUserSerializer(serializers.ModelSerializer): class Meta: model = TeamUser fields = '__all__' class TeamSerializer(serializers.ModelSerializer): class Meta: model = Team fields = '__all__' I want to get all the users that are related to team master 1 -
reconnecting-websocket.min.js:1 WebSocket connection to 'wss' failed: Error during WebSocket handshake: Unexpected response code: 200
I tried deploy my Django channels with WebSocket on Nginx, I tried a lot of ways but all failed try to change on my Nginx and tried to change the WebSocket URL but there is no any way work with me My nginx location /ws/ { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_pass http://127.0.0.1:8001; } my websocket url var wsStart = 'ws://' if (loc.protocol == 'https:'){ wsStart = 'wss://' } var endpoint = wsStart + loc.host + loc.pathname var socket = new ReconnectingWebSocket(endpoint) my django channel layer in settings CHANNEL_LAYERS = { 'default': { 'BACKEND': 'channels_redis.core.RedisChannelLayer', 'CONFIG': { 'hosts': [('localhost', 6379)], }, }, } -
How to integrate google drive API with Django web application?
I want to store the files uploaded by users using a form to get stored in my google drive. Initially, I tried the following code (that prints names and ids of first 10 files) which only works as python script and I don't know how to change/use in the views of my Django application. (I might be also be doing something wrong in the setup part). from __future__ import print_function import os.path from googleapiclient.discovery import build from google_auth_oauthlib.flow import InstalledAppFlow from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials # If modifying these scopes, delete the file token.json. SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly'] def main(): """Shows basic usage of the Drive v3 API. Prints the names and ids of the first 10 files the user has access to. """ creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists('token.json'): creds = Credentials.from_authorized_user_file('token.json', SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES) creds = flow.run_local_server(port=0) # Save the credentials … -
How to respond to method not allowed in Django class-based views
I have a Django app where the views are written using Django's generic views (pre-fixed, cannot change to APIView from Django rest framework). Each API either responds to POST, PUT, or a GET request. Now I want to respond to a custom message for other request types (DELETE, GET... etc) for every API. Currently, Django sends its default 405 Error without any response body. How can I change that? Here's a default class class ClassName(View): def post(self, request) -> JsonResponse: ...... some other application logic ...... return JsonResponse({ "status": True, "message": "", }, status=200) Now, this class only replies successfully to POST requests, any other methods are not allowed. How do I respond with the following message for other request types? return JsonResponse({ "status": false, "msg": "method not allowed", }, status=405) -
Nginx failing to serve django static or media files on digital ocean
I'm having issues serving static files and media files when I deploy my dockerised django app to digital ocean. I've read many similar questions on here, but none of the answers have worked for me so far. Roughly following this guide, https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/#nginx, I'm now in a state where I can spin up my docker container locally using the following commands and have nginx serve static/media files perfectly: sudo docker-compose -f docker-compose-prod.yml down -v sudo docker-compose -f docker-compose-prod.yml up -d --build sudo docker-compose -f docker-compose-prod.yml exec web python manage.py collectstatic --no-input --clear I'm now attempting to get the same working on a digital ocean droplet. On the remote server I run exactly the same commands as above start up the services. Everything then works as expected apart from the ability to access any static or media file. Whenever I for example visit {my digital ocean ip}/static/admin/css/nav_sidebar.css, I'm met with a 404 error. Whenever I see chrome attempting to fetch my custom css, the requests just show as "cancelled" (and then if I visit the URL path of the cancelled request I see the same 404). My code can be seen here: https://github.com/PaulGilmartin/personal_website Parts perhaps relevant to this discussion: nginx.conf upstream personal_website … -
how i get the name of user who logged in my website now django
def show(request): if request.method == 'POST': if request.POST.get('location') and request.POST.get('member') and request.POST.get('arrival') and request.POST.get('leaving'): dest = Destination() dest.location = request.POST.get('location') dest.member = request.POST.get('member') dest.arrival = request.POST.get('arrival') dest.leaving = request.POST.get('leaving') dest.author = user.name(User.objects.all()) dest.save() messages.success(request, 'we will send you best option..!') return render(request,'travell/home.html') else: return render(request,'travell/home.html') what should i do in author please help i am new in this -
Why do I have a 'KeyError' error when using when using Django's coverage tool
Im developing a django API. Now im doing some tests on the endpoints and when i execute 'python manage.py test' everything goes well. But when i use the flag '--with-coverage' or 'coverage run --source='.' manage.py test app && coverage report' i get the error 'KeyError: 'BREAK_LOOP'. Someone can help me? Code from django.test import TestCase import requests class Teste(TestCase): url = "localhost://endpoint/" def test(self): token = self.token headers={ 'content-type' : 'application/json', 'Authorization' : token } response = requests.get(self.url, headers=headers) self.assertEqual(response.status_code, 403) Error nosetests --with-coverage --verbosity=1 Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv super().run_from_argv(argv) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv self.execute(*args, **cmd_options) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute output = self.handle(*args, **options) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django/core/management/commands/test.py", line 53, in handle failures = test_runner.run_tests(test_labels) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django_nose/runner.py", line 308, in run_tests result = self.run_suite(nose_argv) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/django_nose/runner.py", line 244, in run_suite nose.core.TestProgram(argv=nose_argv, exit=False, File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/nose/core.py", line 118, in __init__ unittest.TestProgram.__init__( File "/usr/lib/python3.8/unittest/main.py", line 100, in __init__ self.parseArgs(argv) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/nose/core.py", line 145, in parseArgs self.config.configure(argv, doc=self.usage()) File "/home/user/.virtualenvs/env/lib/python3.8/site-packages/nose/config.py", line 346, in configure self.plugins.configure(options, self) File … -
Django act as browser
Im lately working on a POC of mine. My goal is to forward the request from an user to another server and act as a kind browser in a browser. def test(request): r = requests.get('https://www.google.com') return HttpResponse(r) with this code i recieve a normal response (without css, but not that important rn), but i cant really use the site (makes sense, because im not really using their backend.) Is there a simple way to kinda act as an browser in django so that i could for example edit the recieved code? -
pyInstaller and Django : Couldn't import Django
I am working on an django application and have kind of finish coding it. This app is designed to be used by someone else and as she isn't so familiar with command line or so, i would like to create an executable (with pyInstaller) that start the localhost server and open the page on a browser (I don't nee to deploy it online or so, the localhost is sufficient). To do so, I've created a python script that calls the command python3 manage.py runserver and then open the localhost page in a browser. I then called the command pyinstaller myApp.py (with myApp.py the python script containing the 2 commands above) and then also the command pyinstaller TestMACB2.spec (I'm not sure I need this command but anyway I now have an executable that tries to run those two commands). The opening of the web page works well but I dont know why for the command to start the server, i have this error: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? I do have django installed and when I start the server with the command in … -
Django/Python "django.core.exceptions.ImproperlyConfigured: Cannot import 'contact'. Check that '...apps.contact.apps.ContactConfig.name' is correct"
Hopefully you all can give me a hand with this... my work flow: |.vscode: |capstone_project_website: | -_pycache_: | -apps: | -_pycache_ | -accounts: | -contact: # app that is throwing errors | -_pycache_: | -migrations: | -_init_.py | -admin.py | -apps.py | -forms.py | -models.py | -test.py | -urls.py | -views.py | -public: | -_init_.py | -templates: # all my .html | -_init_.py | -asgi.py | -settings.py | -urls.py | -views.py | -wsgi.py |requirements: |scripts: |static: |.gitignore |.python-version |db-sqlite3 |docker-compose.yml |Dockerfile |Makefile #command I am running |manage.py |setup.cfg my Installed apps in capstone_project_website/settings.py: INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "capstone_project_website.apps.accounts", "capstone_project_website.apps.contact", ] my capstone_project_website/apps/contact/apps.py: from django.apps import AppConfig class ContactConfig(AppConfig): name = "contact" the command I am running is in my Makefile: compose-start: docker-compose up --remove-orphans $(options) When I run make compose-start I get this message from my Terminal: make compose-start docker-compose up --remove-orphans Docker Compose is now in the Docker CLI, try `docker compose up` Starting django-website_postgres_1 ... done Starting django-website_db_migrate_1 ... done Starting django-website_website_1 ... done Attaching to django-website_postgres_1, django-website_db_migrate_1, django-website_website_1 db_migrate_1 | Traceback (most recent call last): db_migrate_1 | File "/usr/local/lib/python3.7/site-packages/django/apps/config.py", line 244, in create db_migrate_1 | app_module = import_module(app_name) db_migrate_1 | File "/usr/local/lib/python3.7/importlib/__init__.py", … -
Dynamic Forms with Logical Operators
I am currently stuck with a task where I need to create a form using HTML and JavaScript. I know it is very simple but the trick comes as second part. Think of form that is dynamic and over it uses logical operators such as "And" & "OR" operators to club the options selected by the user. I am really confused with this task. I can create dynamic dropdown selection form with JS with no problem but I have no idea how can I create a form that can club those selections with Logical operators also I have no idea how to handle DELETE for the form fields in between. I am fetching the dropdown meta-data from an API made over Django. I need to get the form data in post request so that I can create a string of SQL query. I know there will be many suggestion of how I can do it directly with Django but the fact is I need to create the SQL query string and not to run it on the database. Example of SQL Query String: SELECT first_name, last_name, salary FROM employees WHERE salary = 7000 OR salary = 8000 ORDER BY salary; … -
Pulling data associated with user account in Django
I'm creating a model in Django with the following syntax. The model has a foreign key of registered users. However, I want to serialize this model that will return a Json file only associated with the logged in user. Can you give your recommendations? Or is there an alternative way to extract the information from the model using different approach? class Education(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) school = models.CharField(max_length=50) year = models.CharField(max_length=10) -
Keyerror 'include' on migrating models to sql server
I have a django application and have backend as Microsoft sql server. For that, i have installed "pip install django-mssql-backend". I have extended User model and added one additional field of confirm_password and same i am migrating, but i am getting below error Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial...Traceback (most recent call last): File "manage.py", line 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line utility.execute() File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\core\management\__init__.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\core\management\base.py", line 354, in run_from_argv self.execute(*args, **cmd_options) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\core\management\base.py", line 398, in execute output = self.handle(*args, **options) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\core\management\base.py", line 89, in wrapped res = handle_func(*args, **kwargs) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\core\management\commands\migrate.py", line 246, in handle fake_initial=fake_initial, File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\db\migrations\executor.py", line 117, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\db\migrations\executor.py", line 147, in _migrate_all_forwards state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\db\migrations\executor.py", line 227, in apply_migration state = migration.apply(state, schema_editor) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\db\migrations\migration.py", line 126, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\db\migrations\operations\models.py", line 531, in database_forwards getattr(new_model._meta, self.option_name, set()), File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\sql_server\pyodbc\schema.py", line 156, in alter_unique_together self.execute(sql) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\sql_server\pyodbc\schema.py", line 861, in execute sql = str(sql) File "C:\Users\RJhaveri\Documents\Ronak\SourceCode\Development\django\retailAudit\lib\site-packages\django\db\backends\ddl_references.py", line 201, in __str__ … -
domain name problem with django app dployed with heroku
i'm trying to add adsense to my django web app but i can't activate it because of "no content website" error. i'm using heroku to publish my webapp and i've seen that my website work with this way "mywebsite.herokuapp.com" but doesn't work with "www.mywebapp.herokuapp.com" and it's probably because of that i had this error. when i'm trying to acces to "www.mywebapp.com" my browser show me a page with that error : inaccessible website , DNS_PROBE_POSSIBLE in my settings.py file, the allowed_host line contains "mywebapp.com", "www.mywebapp.com" did somebody can say to me how to fix that in heroku web app's settings eventually or directly in my project files. thank you for helping me ! -
django rest framework: TypeError: unhashable type: 'list'
I can't find the bug please help I also tried this with custom models didn't worked. As you can see I'm tring to do PUT, DELETE and GET opration. Error Message Exception Type: TypeError at /api/user/sagar/Exception Value: unhashable type: 'list' views.py class ProfileApiView(generics.RetrieveUpdateDestroyAPIView): serializer_class = serializer.RegisterUserSerializer permission_classes = [IsAuthenticated, ] lookup_field = ['username'] def get_queryset(self): return User.objects.filter(username=self.request.user) serializer.py class RegisterUserSerializer(serializers.ModelSerializer): email = serializers.EmailField(required=True, validators=[ UniqueValidator(queryset=User.objects.all())]) username = serializers.CharField(required=True, validators=[ UniqueValidator(queryset=User.objects.all())]) password = serializers.CharField( write_only=True, required=True, validators=[validate_password]) class Meta: model = User fields = ['email', 'username', 'password'] def create(self, validated_data): user = User.objects.create( email=validated_data['email'], username=validated_data['username'] ) user.set_password(validated_data['password']) user.save() return user -
Why there is a small circle on my django folder
https://images.app.goo.gl/vvJSsYovFXFdtCfK7 Like these on dedo and on migration -
Django.session: how to determine the start of a Django user session?
My site have second level pages. User can get there from first level page with form. Data of the form stored in request.session. It work ok if the user get second level page normally - from first level page . Problems appear if user get the second level page directly - from Google search or his own benchmarks. In that case i need clear the request.session to deafult, but only in that case. Django put request.session data in cookies, and stores form data to user if he coming second time to the site. I don`t need it in the case the user come from external side. Can i determine that the page get by user first time in the session? Or he comes directly on this second level pages, not from first level page? -
How to avoid/eliminate Integrity error on form fields
I have a form that displays details but when I bring in a filter it fails. Where is the mistake?? The error is here File "C:\Users\FR GULIK\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute return Database.Cursor.execute(self, query, params) django.db.utils.IntegrityError: NOT NULL constraint failed: libman_issue.book_id_id This is the form class IssueForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(IssueForm, self).__init__(*args, **kwargs) self.fields['book_id'] = forms.ModelChoiceField( queryset=Books.objects.filter(no_of_books=1),label='Available books') class Meta: model = Issue fields = ['borrower_id',] When I have the form as shown below it works. class IssueForm(forms.ModelForm): class Meta: model = Issue fields = ['borrower_id','book_id'] -
'Default' value error after makemigrations command
I am working on a django blog project. Having some issue in models.py file after running 'py manage.py makemigrations' I used this code: publish_date = models.DateTimeField( auto_now_add=True) update_date = models.DateTimeField(auto_now=True) Error I am getting: You are trying to add the field 'publish_date' with 'auto_now_add=True' to blog without a default; the database needs something to populate existing rows. When I used This code: publish_date = models.DateTimeField( auto_now_add=True, default=True) update_date = models.DateTimeField(auto_now=True, default=True) Error Now: App_Blog.Blog.publish_date: (fields.E160) The options auto_now, auto_now_add, and default are mutually exclusive. Only one of these options may be present. App_Blog.Blog.update_date: (fields.E160) The options auto_now, auto_now_add, and default are mutually exclusive. Only one of these options may be present. WHAT IS THE SOLUTION? -
AssertionError: 403 != 200 in APITestCase
i have this url: path('post/',views.PostListCreateAPIView.as_view(),name='post_lc'), with an app-name : app_name='blog_api' and trying to test it like : class TestPost(APITestCase): def test_view_posts(self): response = self.client.get('blog_api:post_lc') self.assertEqual(response.status_code, status.HTTP_200_OK) and even with url directly : class TestPost(APITestCase): def test_view_posts(self): response = self.client.get('/api/post/') self.assertEqual(response.status_code, status.HTTP_200_OK) the url and the views, are functioning works well, but the test keep giving the error AssertionError: 403 != 200 and i just can't figure out why, thanks for the help Update i forgot that i had IsAuthenticated, which caused the 403 error REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', ]} -
using html input type=datetime-local won't insert in Django model having datetime field
I am not using Django forms but instead using the normal ones with html and bootstrap. I have an input field of type datetime-local which the user can select for a particular event to happen. However, I am unable to insert in in my Django model due to timezone error. I get this error message: DateTimeField %s received a naive datetime (%s ) How do I fix this pleaaaase? html code: <label>Scheduled Date and Time<label> <input type="datetime-local" id="test_datetime" name="test_datetime" id="test_datetime"> views.py def add_test(request, pid): if request.method == 'POST': test_datetime = request.POST['test_datetime'] and it continues.... -
My Session is getting auto cleared after i receive a get request from paypal in django
I am using paypalrestsdk for accepting payments def process_subscription(request, subscription_type): print(request.session.load()) # output : {'name': 'Abhay', 'password': 'k2jk2332k'} # code to process payment if payment.success() return redirect(redirect_url) return redirect(reverse('error_page')) @csrf_exempt def success(request): print(request.session.load()) # here output is {} blank return render(request, 'success.html') It don't works even if i have removed @csrf_exempt, i have searched on google but did'nt found solution to it... Django Version : 3.2 PaypalRestSdk version : 1.13.1 -
NotWritableError: The current user does not have write permissions to a required path
NotWritableError The current user does not have write permissions to a required path. -
Should I render images from other sites instead of using sevices like AWS storage in my web app?
I am developing a blogging site which has a lot of images. Instead of storing all of the images in the database or AWS etc. should I render the image from another site using the share link? I was thinking of storing the images in Google drive and rendering them using the share link. Will it work? -
unable to see classes in my django admin site
i created 2 classes in my models.py which i can access through shell but cant see it on my /admin page. i used python manage.py migrate and makemigrations my models.py: from django.db import models class Company(models.Model): name = models.CharField(max_length=200) def __str__(self): return self.name class Product: name = models.CharField(max_length=200) company = models.ForeignKey(Company, on_delete=models.CASCADE) def __str__(self): return self.name my admin.py: from django.contrib import admin from.models import Company, Product admin.register(Company) admin.register(Product)