Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
TailwindCSS grid-columns don't apply in Django Template
I'm using TailwindCSS in a Django template. I want to display all elements of a form in 3 columns, but somehow they all get displayed within one column. When I change to 2 columns, it works, but in all other n-columns (3, 4, 5, 6 ...) it doesn't. Anybody knows what the issue is here? Here's the template: <form method="get"> <div class="grid grid-cols-3 md:grid-cols-3 sm:grid-cols-3 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-3"> {% for elem in filter.form %} <div class="">123</div> {% endfor %} </div> <button type="submit">Go!</button> </form> -
Unable to create Google Meet Link in python with django
I'm trying to create a Google Meet event using the Google Calendar API in Python, but I'm encountering an HttpError. Here's the code I'm using to create the event: import logging import uuid from google.oauth2.service_account import Credentials as GoogleCredentials from googleapiclient.discovery import build from googleapiclient.errors import HttpError from courses.models import Teacher logger = logging.getLogger('google_calendar') def create_google_meet_event(teacher: Teacher, start_time, end_time, summary, description): # Retrieve the service account file path service_account_file_path = teacher.service_account_file.path # Use service account credentials credentials = GoogleCredentials.from_service_account_file(service_account_file_path, scopes=['https://www.googleapis.com/auth/calendar']) service = build('calendar', 'v3', credentials=credentials) event = { 'summary': summary, 'description': description, 'start': { 'dateTime': start_time.isoformat(), 'timeZone': 'UTC', }, 'end': { 'dateTime': end_time.isoformat(), 'timeZone': 'UTC', }, 'conferenceData': { 'createRequest': { 'requestId': uuid.uuid4().hex, 'conferenceSolutionKey': { 'type': 'hangoutsMeet' }, } } } try: # Insert the event into the teacher's calendar created_event = service.events().insert(calendarId='primary', conferenceDataVersion=1, body=event).execute() # Get the Google Meet link meet_link = created_event.get('hangoutLink') return meet_link except HttpError as error: # Handle the error as appropriate in your Django view logger.error(error) raise Exception(error) I have ensured that the service_account_file_path is correct, and the teacher object contains the correct credentials. Exception: <HttpError 400 when requesting https://www.googleapis.com/calendar/v3/calendars/primary/events?conferenceDataVersion=1&alt=json returned "Invalid conference type value.". Details: "[{'domain': 'global', 'reason': 'invalid', 'message': 'Invalid conference type value.'}]"> Ive … -
How to get a react page in my django backend to send it in mail
I have a backend server using Django framework and frontend using React.js I have a page that shows some statistics and wish to export this page in my backend so that I can send it in mail for recipients every interval (15 minutes, 30 minutes..). The page changes every minute so that I can't upload the page as pdf once in backend and use it later. I found that I can use headless browser to make a request to frontend to get the page but I have concerns about this appoach.. Or how heavy it is to add a headless browser in my backend server. And I don't want to recreate the page again in Django using templates because I won't be able to copy the design and also it is extra development time and duplicated code. I can see that those who use server side rendering can acheive this task easily while the page is renedered in backend.. that means they can use the page to send it in mail as pdf or to send it as a response to clients. I expect to have a good performance and wish to have some overview if this task already exist … -
How to get values with a different "path" in the database?
I want to get values from a table (the end goal is to create a dataframe out of a queryset). Those values depend on a form submitted by a user. Here is a simplified snippet of my models: class Report_Sample(models.Model): assay = models.CharField(max_length=50) samtools_data = models.ForeignKey( "Samtools_data", on_delete=models.DO_NOTHING, blank=True, null=True ) picard = models.ForeignKey( "Picard", on_delete=models.DO_NOTHING, blank=True, null=True class Samtools_data(models.Model): total_passed = models.IntegerField(null=True) total_failed = models.IntegerField(null=True) class Picard(models.Model): sample = models.CharField(max_length=10) library = models.CharField(max_length=10) read_group = models.CharField(max_length=10) picard_hs_metrics = models.ForeignKey( "Picard_hs_metrics", on_delete=models.DO_NOTHING, blank=True, null=True ) class Picard_hs_metrics(models.Model): bait_set = models.CharField(max_length=10) bait_territory = models.FloatField() Using the form, the user can select a subset of Report_sample objects and a metric to look at. So let's say the user wants the Samtools total_passed field. I can do: subset_report_samples = Report_sample.objects.filter(whatever_filter_the_user_wanted) metric_filter = None for model in apps.get_models(): for field in model._meta.get_fields(): if field.name == metric: metric_filter = f"{model.__name__.lower()}__{metric}" break subset_report_samples.objects.values(metric_filter) If we want to access the Picard_hs_metrics table however this breaks because of the intermediary table Picard. I thought about using a try/except block using from django.core.exceptions import FieldError but it feels horrible to use. So i was wondering if there was a Django method to find that metric_filter string given the field … -
How to create models for quiz application in django?
I'm working on a quiz app in django. I don't really know how to create the models for that. Basically, I need a quiz in sometimes questions are 'multiple choice', but sometimes they are 'short answer'. models.py class Quiz(models.Model): question = models.CharField(max_length=200) opt1 = models.CharField(max_length=100, null=True) opt2 = models.CharField(max_length=100, null=True) opt3 = models.CharField(max_length=100, null=True) opt4 = models.CharField(max_length=100, null=True) short_answer = models.CharField(max_length=100, null=True) def __str__(self): return self.question This is what I've already done. I don't know how will I understand if the current question is short answer or multiple choice. I think that if the short_answer field is empty, I can render the multiple choice. If it's not empty, I render short answer. Is it correct to do so? -
How to properly type client.post response in django test?
@pytest.mark.django_db def my_test( self, client, ): with monkeypatch_requests(resp_json={'values': []}): r: JsonResponse = client.post( self.endpoint, self.request_payload, content_type='application/json', ) assert r.status_code == 201, r.content assert r.json() == {'key': value} PyCharm is complainging Unresolved attribute reference 'json' for class 'JsonResponse', but I can use it. When I run the test in debugger and hover over json I can see functools.partial(<bound method ClientMixin._parse_json of <django.test.client.Client object at 0x7f3b81399d30>>, <JsonResponse status_code=201, "application/json">) -
Django what if the change is applied on database manually
I have short question. Let's assume in migration file I have some change that was already done manually on database level. Does migration will be applied without throwing an error? -
I can not find mod_wsgi model in Apache modules environment - Django
I am new to Django and I tried to connect it with Apache through mod_wsgi but it seems new versions of Apache does not support such kind of module. Am I right? Or is there any different way I could deploy my Django project in production? I saw on the official page I could use nginx. Any opinions? -
Django threaded / nested comments
What's the best way to implement threaded/nested comments in Django? I've read a bit about MPTT and django-threadedcomments but all the posts seem to be from years ago. Is using MPTT still the 'accepted' way or is there a newer way to do it? -
nowait or another method in Django admin page
I'm using Django and trying to find something similar to nowait=True in Django admin page. I have some script which locks entries(select for update) during working. So, when I try to change some fields values in Django admin page for that entry when its locked, admin page waits for unlocking that entry(in my case it could take minutes). I want to raise error(something like "database entry is locked") in admin page without waiting for unlocking. -
Django request.session.get() returns None across different view classes
I am working on a Django project and I'm encountering an issue with session variables. I set a session variable in one view, but when I try to access it in another view, it returns None. Here's a simplified version of my code: In my LoginVerification view: from rest_framework.views import APIView from rest_framework.response import Response class LoginVerification(APIView): def post(request): # ... login logic ... # If login is successful, I store the AWS access key in the session request.session['aws_access_key'] = 'your-access-key' return Response({"message": "Login successful"}) In my BucketSize view: from rest_framework.views import APIView from rest_framework.response import Response class BucketSize(APIView): def get(self, request): # Here, I try to retrieve the AWS access key from the session aws_access_key = request.session.get('aws_access_key') if aws_access_key is None: return Response({'status': 'error', 'error': 'No AWS access key found in session.'}) # ... remaining logic ... return Response({'status': 'success', 'bucketsize': bucketsize, 'unit': unit}) In the BucketSize view, request.session.get('aws_access_key') is always returning None, even though I have set it in the LoginVerification view. I have checked the following: The session variable is being set: The code in the LoginVerification view is running without errors. The session has not expired: I'm testing the BucketSize view immediately after the LoginVerification view. … -
for displayeding two digits id's
def project_list(request): project_details = Project.objects.all().exclude(status__gt=1) users_details = Users.objects.all().exclude(status__gt=1) return render(request, 'project/list.html', {"projects": project_details, "users": users_details}) this view {% for user_id in project.users %} {% for user in users %} {% if user.id|stringformat:"s" == user_id %} {{ user.first_name }}, {% endif %} {% endfor %} {% endfor %} not displayed having two digit's in id's in above pic u can see for name_2 ihave passed id 11 not displayed I need to get like this in above screen name_2 firstname_1 id is 7 and like that it need to display two digit id 11 name firstname_4 -
Template variable for email in Django allauth socialaccount signup
What template variable does the email field in the form in socialaccount /signup.html in Django allauth use? In the allauth/templates/socialaccount/signup.html there is this form: <form class="signup" id="signup_form" method="post" action="{% url 'socialaccount_signup' %}"> {% csrf_token %} {{ form.as_p }} {% if redirect_field_value %} <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" /> {% endif %} <button type="submit">{% trans "Sign Up" %} &raquo;</button> </form> To style the fields and delete labels I want to drop the form and use my own input fields. I can extract the tags inspecting the from in the browser but the value= from the email input field is already populated with my email address and I can't see the variable it uses. Can you help me with it? I tried to find it in the source code but i can't understand it. It seems that it renders the SocialAccount model in the form. I have tried from value="{{ email }}" to value="{{ socialaccount.get_social_account().user.get_email() }}" everything. -
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'accounts.User' that has not been installed
i'm getting these error in my code: raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'accounts.User' that has not been installed Why am i getting this Error?? I can't understand why it doesn't work i'm added AUTH_USER_MODEL = 'accounts.User' to settings models.py from django.db import models from django.contrib.auth.models import AbstractBaseUser from .managers import UserManager from django.contrib.auth.mixins import PermissionRequiredMixin class User(AbstractBaseUser, PermissionRequiredMixin): email = models.EmailField(max_length=255, unique=True) phone_number = models.CharField(max_length=11, unique=True) full_name = models.CharField(max_length=100) is_active = models.BooleanField(default=True) is_admin = models.BooleanField(default=False) objects = UserManager() USERNAME_FIELD = 'phone_number' REQUIRED_FIELDS = ('email', 'full_name') # just for createsuperuser def __str__(self): return self.email @property def is_staff(self): return self.is_admin managers.py from django.contrib.auth.models import BaseUserManager class UserManager(BaseUserManager): def create_user(self, phone_number, email, full_name, password): if not phone_number: raise ValueError('user most have phone number') if not email: raise ValueError('user most have email') if not full_name: raise ValueError('user most have full name') user = self.model(phone_number=phone_number, email=self.normalize_email(email), full_name=full_name) user.set_password(password) user.save(using=self._db) return user def create_superuser(self, phone_number, email, full_name, password): user = self.create_user(phone_number, email, full_name, password) user.is_admin = True user.is_superuser = True user.save(using=self._db) return user forms.py from django import forms from .models import User from django.core.exceptions import ValidationError from django.contrib.auth.forms import ReadOnlyPasswordHashField class UserCreationForm(forms.ModelForm): password1 = forms.CharField(label='Password', widget=forms.PasswordInput) password2 = forms.CharField(label='Confirm Password', widget=forms.PasswordInput) class Meta: model … -
How to block Trinity.txt.bak calls in nginx
I am runnning some web servers using nginx as a proxy in front of django applications. Every now and then I see calls to https://*.[MY.DOMAIN]/nice%20ports,/Trinity.txt.bak being passed to Django which generates the exception "Invalid HTTP_HOST header". How can I block these kind of requests in nginx so they never reach Django? -
Django forget password in login page
We know in the Django login admin page you can just enter user/pass and log in to the admin panel. But is there any method to add the forget password option to this page? Or there is any package for it? -
Uploading BLOB from ts through django API to DB
I'm trying to upload some logData but in my database the informationfield is always empty, everything else gets uploaded correctly. I've tried two differnt ways, neither of them seem to work. I uploaded everything packed in a formdata with the logData as blob/string/... nothing worked The other way was creating an Object based on an interface and adding all the information (here aswell i tried string and blob) both didn't work, the field on the Database is always empty. I'm curios if i did something wrong cause the data should be in the database saved as log.csv with the hexstring in it i get the data as an UInt8Array ATM it looks like this: const test = new Blob([locAdjustmentBlob]) const formData = new FormData(); formData.append("log_user", locUser) formData.append("log_adjustment_blob", test) await store.state.apiHandler.postForm("/raw/logs/", formData) And in the the API: class Log(models.Model): log_id = models.AutoField(primary_key=True) log_user = models.CharField(max_length=50) log_adjustment_blob = models.BinaryField() If you need more information just ask Thanks! -
Django double User check
I’m aiming to establish a warehouse inventory manage system. Now I want to achieve that, when warehouse manager give the material to the worker for producing, I want the warehouse manager create a record(name, time, and manager name and so on) first, and then worker log in to his/her own site and check the record then confirm it. Which achieve double check. Is there any way to achieve it. Thank you for help. -
django admin styling is corrupted
I have just started learning Django and when I got to the admin page it appears to be corrupted, no style. I tried collectstatic which gave me an error, I tried to alter static_root but my settings.py does not have it. I tried to reload the page several times with Fn F5 but it did not help. I found some suggestions on the internet but they seem to be a bit too advanced for me, I don't want to make things worse. Is there something not too advanced you could recommend? Thank you! -
'method' object is not subscriptable in the browser
views.py def signup(request): if request.method == "POST": username = request.POST.get['username', False] firstname = request.POST.get['firstname', False] lastname = request.POST.get['lastname', False] email = request.POST.get['email', False] pass1 = request.POST.get['pass1', False] pass2 = request.POST.get['pass2', False] myuser = User.objects.create_user(username, email, pass1) myuser.firstname = firstname myuser.lastname = lastname myuser.save() messages.success(request, "Your Account has been succesfully created.") return redirect('signin') return render(request, "authentication/signup.html") when i click the signup button it says TypeError at /signup 'method' object is not subscriptable could you please help me to solve this? -
Using getStaticProps and getServerSideProps to make authenticated requests to django api
I have a next js application for the frontend and a django REST framework api on the backend. I am using jwt token authentication for my backend using django Simple JWT. Most of my api views are protected by authorization bearer header required. When my user logs in and is authenticated, my django backend responds with an access and refresh token with http only cookies. As I build this app I have a question. If I am making some requests to my backend protected routes with getServerSideProps or getStaticProps which don't run on the client, then is it actually necessary to protect some of my backend routes? If getServerSideProps or getStaticProps dont run on the client, then I don't run the risk of anyone making requests to my backend, considering I have CORS_ALLOWED_ORIGINS in my django settings to only allow requests from my frontend. -
Django Admin and Forms. BaseInlineFormSet. def clean( )
I need to implement a prohibition on removing the last ingredient from a recipe. So that the recipe is not left empty without ingredients, or make the recipe deleted when the last ingredient is deleted. I need to use BaseInlineFormset and method def clean( ), but i dont understand this class RecipeAdmin(admin.ModelAdmin): list_display = ('name', 'author', ) list_filter = ('name', 'author', ('tags', admin.RelatedOnlyFieldListFilter),) inlines = (IngredientRecipeInline, TagRecipeInline) class IngredientRecipeInline(admin.TabularInline): model = IngredientRecipe min_num = 1 class Recipe(models.Model): name = models.CharField( max_length=200 ) author = models.ForeignKey( User, related_name='recipes', on_delete=models.CASCADE, null=True, ) text = models.TextField( ) ingredients = models.ManyToManyField( Ingredient, related_name='recipes', through='IngredientRecipe' ) I"ve tried this but dont work class FormSet(BaseInlineFormSet): def clean(self): super(FormSet, self).clean() for form in self.forms: if not hasattr(form, 'cleaned_data'): continue data = form.cleaned_data if (data.get('DELETE') and form.instance.ingredients == 1): raise ValidationError('You cannot delete') -
Django does not seem to work with DigitalOcean Spaces
I have followed multiple tutorials on how to use the DigitalOcean object storage known as DigitalOcean Spaces on my Django project but I'm not able to do it. Actually, I was using it before and it was working, after that I moved the static files to Contabo Object Storage, and apparently their CDN is pretty slow so when I decided to go back to DO, it does not work anymore, I even went to the commit where I had it working and copied the exact same code. Here is the code I have on my settings.py: from storages.backends.s3boto3 import S3Boto3Storage class MediaStorage(S3Boto3Storage): bucket_name = "XXXX" class StaticStorage(S3Boto3Storage): bucket_name = "XXXX" DEFAULT_FILE_STORAGE = "nafssi.settings.MediaStorage" STATICFILES_STORAGE = "nafssi.settings.StaticStorage" AWS_ACCESS_KEY_ID = "XXXX" AWS_SECRET_ACCESS_KEY = "XXX/XXXX/XXXXX" AWS_S3_ENDPOINT_URL = "https://XXXX.fra1.digitaloceanspaces.com" AWS_S3_OBJECT_PARAMETERS = { "CacheControl": "max-age=86400", } MEDIA_URL = f"{AWS_S3_ENDPOINT_URL}/media/" STATIC_URL = f"{AWS_S3_ENDPOINT_URL}/static/" When I try python manage.py collectstatic I have the following error: You have requested to collect static files at the destination location as specified in your settings. This will overwrite existing files! Are you sure you want to do this? Type 'yes' to continue, or 'no' to cancel: yes Traceback (most recent call last): File "D:\Data\Dropbox\D Drive\Toubib\Nafssi\Code\manage.py", line 22, in <module> main() File … -
Can't get Django to use Postgres
I am trying to switch a local Django project from the default sqlite3 database to a postgres database. I've been through several tutorials but nothing seems to work and I'm not sure what I'm doing wrong. Steps I've performed: In my postgres shell I can see there is a database called testdb. I've created a psql user bb with password foobar I ran the following command to grant bb access: GRANT ALL PRIVILEGES ON DATABASE testdb TO bb; Back in my virtual environment I run brew services start postgresql which prints: ==> Successfully started `postgresql@14` (label: homebrew.mxcl.postgresql@14) In my Django project's settings.py I have the following database configuration: DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql_psycopg2", "NAME": "testdb", "USER": "bb", "PASSWORD": "foobar", "HOST": "127.0.0.1", "PORT": "5432", } } Running python manage.py makemigrations produces the following error: /opt/miniconda3/envs/django-db/lib/python3.9/site-packages/django/core/management/commands/makemigrations.py:158: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': connection to server at "127.0.0.1", port 5432 failed: FATAL: password authentication failed for user "bb" warnings.warn( No changes detected Is there a step I've missed somewhere? No idea why there's no connection to the server available. -
Django cannot cast type integer to smallint when attempting to filter a queryset
I have an IntegerChoices Genre: from django.db import models # ... class Genre(models.IntegerChoices): fantasy = 0, scifi = 1, real = 2, #... and a book model that uses an ArrayField of PositiveSmallIntegerField with Genre as choices: from django.contrib.postgre.fields import ArrayField #... class Book(models.Model): #... genres = ArrayField(models.PositiveSmallIntegerField(choices=Genre.choices), null=True, blank=True)) #... When I try to filter by the genres field using values from the Genre choices I get an error that Django (or psycopg2) cannot cast an integer to a smallint: # traceback psycopg2.errors.CannotCoerce: cannot cast type integer to smallint[] LINE 1: ..."book" WHERE "book"."genres" @> 1::smallint... ^ The above exception was the direct cause of the following exception: # traceback django.db.utils.ProgrammingError: cannot cast type integer to smallint[] LINE 1: ..."book" WHERE "book"."genres" @> 1::smallint... ^ All of these attempts to filter trigger the above error: genre = Genre.scifi print(genre) # >>> 1 Book.objects.filter(genres__contains=genre) # error Book.objects.filter(genres=genre) # error However if I try to create a book instance with the genre everything works. book = Book.objects.create( #... genres=[genre] ) # no error print(book.genres) # >>> [1] Is the problem the PositiveSmallIntegerField? I couldn't find any "SmallIntegerChoices" as a replacement for the IntegerChoices. Or is it the way the filtering is/should …