Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django, custom 404 page redirects to 500 when Debug=False because Django cannot find exception parameter
When Debug = True django returns a Page not found (404) page which is totally fine But when I change Debug = False django return a Server Error (500) and the server shows these requests made: [30/Jul/2022 12:29:44] "GET /__reload__/events/ HTTP/1.1" 500 145 [30/Jul/2022 12:29:44] "GET /__reload__/events/ HTTP/1.1" 500 145 [30/Jul/2022 12:29:44] "GET /sdfs HTTP/1.1" 500 145 [30/Jul/2022 12:29:45] "GET /favicon.ico HTTP/1.1" 302 0 myproject main urls.py from django.conf.urls import handler404 handler404 = 'myproject.views.custom_page_not_found' please note here that hander404 is not found by django handler404 not found my views.py def custom_page_not_found(request, exception, template_name="errors/404.html"): return render(request, template_name, status=404) Please not here django cannot find the exception parameter exception parameter not found In previous community questions i could not find any question that points to the exception parameter not found issue. Please note that i am not using django templates {% %} in my 404.html file I think when django does not find the exception parameter it returns server error 500. -
What are the consequences of enforcing django foreign keys constraints at database level?
We'd like to add to an existing django app foreign keys implementation at the database level and we wonder what side effects we should expect from this. Some explanations more in details: We have a Django app, based on postgresql backend. Quite a lot of data, foreign keys, tables, etc. It used to be pure django based so we never even noticed that actually django does not implement foreign keys at database level but rather emulates it in the python stack. Now we try to integrate another project which ships SQL statements that we'd like to apply on the django database. So we receive statements like DELETE FROM foo WHERE id=bar. These statements can fail because of foreign keys which are implemented as ON DELETE RESTRICT (or maybe NO ACTION I don't remember right now) initially by django. To solve our issue, we though we could alter the foreign keys in postgres to mimic the django behavior (on delete cascade or set null mainly). This without changing anything in the django code. One comment by 'dirkgroten' found in Django does not honor ON DELETE CASCADE seems to suggest that this would not break the main application but, before we run … -
Django, form.is_valid() What does it check?
I do not use the form of models.form I received and stored each items of request.POST and request.FILES I will make my validation function. So I wonder what validation it does. (ex. input is empty, etc.) -
Django error: "ValueError: Unable to configure handler in 'database_file'
I have trouble with starting my backend in Django with the command python manage.py runserver I am using Anaconda for a virtual environment. Everything is working on Linux systems, but the two Windows developer get the following error: File "C:\Users\vu492\anaconda3\envs\sample_venv\lib\logging\config.py", line 570, in configure raise ValueError('Unable to configure handler ' ValueError: Unable to configure handler 'database_file' There are similar questions already online. (ValueError: Unable to configure handler 'file': [Errno 2] No such file or directory:) Unlike my issue others get a directory in which something is missing. -
Integration problem Between reactnative app and Django server
When i run the server it shows me a message http://127.0.0.1:8000/. i want to do integration so i need to use this url in reactnative or anyother? -
change rows values in relate to another row
I'm working on leitner flashcards system the whole leitner sys is about BOXes order e.g box1, box2 ,box3 ,so when u solve a card in box1 it gets moved backward to box2 and vise versa .. now, what if I want to change the order of a box? or even delete it? wouldn't be better to change the other boxes orders? e.g [box1, box2, box3] => [box1, box2] so now you got the idea, here's how I implement it in django models: class Box(models.Model): name = models.CharField(max_length=100) order = models.IntegerField(blank=False) end_days = models.IntegerField(blank=False) end_hours = models.IntegerField(blank=False) end_minutes = models.IntegerField(blank=False, default=0) def __str__(self): return self.name now the big Question is , when some row('obj') deleted/order-changed how can I increment/decrement other rows ???! and if u have better idea than what I'm trying to do please share it . regards -
How to integrate dash app into react app?
I have built a dash app but to provide the full solution need to integrate with react app.is there a way to plug dash app within react framework -
Django ORM annotate Query
I have a subquery which returns an array. I want to perform certain operations to pick one data out of that array. I am not able to figure out how to do it. query_obj = VendorSecurity.objects.filter( valid_data=True ).values( "id", "rate", ).annotate( rating_val=Subquery( MySecurity.object.order_by("-date_of_credit_rating") .values("credit_rating_agency_code")[:1] ), ) ) I want to process my rating_val which will be an array. I tried pass the subquery result to a fun like: annotate( rating_val=myFun(Subquery( MySecurity.object.order_by("-date_of_credit_rating") .values("credit_rating_agency_code")[:1] )), ) ) But I am not able to access subquery value. I also tried passing later part of subquery to model manager but again I am not able to access subquery response. -
GitHub action couldn't find environment variable for Django
I was trying to use the environment variable in my Django application where I use the django-environ package with the .env file in my local machine. But I can't use the .env file in my GitHub action. I've configured action secret variables manually from my project settings. Here is my local machine code: import environ env = environ.Env() environ.Env.read_env() DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': env('POSTGRES_DB_NAME'), 'USER': env('POSTGRES_USER'), 'PASSWORD': env('POSTGRES_PASSWORD'), 'HOST': env('POSTGRES_HOST'), 'PORT': env('POSTGRES_PORT'), } } This code is working in my local environment but failed to load in GitHub actions. I have configured the same variables in GitHub actions too, but still, the application couldn't find the environment variable there in the GitHub action. django.yml name: Django CI on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest strategy: max-parallel: 4 matrix: python-version: [3.7, 3.8, 3.9] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Run Tests run: | python manage.py test The GitHub Action displays the following errors: Traceback (most recent call last): … -
I was trying to run my Django project visual code. I am getting the following error and I don't really know how to fix it
Traceback (most recent call last): File "c:\Users\PaVaN\Desktop\Run Project\Djungle-Online-Job-Portal-master\Djungle-Online-Job-Portal-master\dappx\views.py", line 3, in from django.contrib.auth.models import User, auth File "C:\Users\PaVaN\AppData\Local\Programs\Python\Python310\lib\site- packages\django\contrib\auth\models.py", line 3, in from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "C:\Users\PaVaN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\contrib\auth\base_user.py", line 49, in class AbstractBaseUser(models.Model): File "C:\Users\PaVaN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\base.py", line 127, in new app_config = apps.get_containing_app_config(module) File "C:\Users\PaVaN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\apps\registry.py", line 260, in get_containing_app_config self.check_apps_ready() File "C:\Users\PaVaN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\apps\registry.py", line 137, in check_apps_ready settings.INSTALLED_APPS File "C:\Users\PaVaN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init_.py", line 87, in getattr self._setup(name) File "C:\Users\PaVaN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf_init_.py", line 67, in _setup raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. PS C:\Users\PaVaN\Desktop\Run Project\Djungle-Online-Job-Portal-master\Djungle-Online-Job-Portal-master> -
'user_model' referenced before assignment
I'm getting ---> UnboundLocalError at /signup local variable 'user_model' referenced before assignment The Error is occurring at* user_model = User.objects.get(username=username, id=user_model.id) *** In the Models.py File*** User gets created with pass and email in database, just not the profile models.py from django.db import models from django.contrib.auth import get_user_model # Create your models here. User = get_user_model() class Profile(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) id_user = models.IntegerField() bio = models.TextField(blank=True) profileImage = models.ImageField(upload_to='profile_images', default='blank-profile-picture.png') location = models.CharField(max_length=100, blank=True) def __str__(self): return self.user.username views.py from django.shortcuts import render, redirect from django.contrib.auth.models import User, auth from django.contrib import messages from django.http import HttpResponse from .models import Profile def index(request): return render(request, 'index.html') def signUp(request): if request.method =='POST': username = request.POST['username'] email = request.POST['email'] password1 = request.POST['password1'] password2 = request.POST['password2'] if password1 == password2: if User.objects.filter(email=email).exists(): messages.info(request, 'Email Already In Use!') return redirect('signup') elif User.objects.filter(username=username).exists(): messages.info(request, 'Username is Taken') return redirect('signup') else: user = User.objects.create_user(username=username, email=email, password=password1) user.save() user_model = User.objects.get(username=username, id=user_model.id) new_profile = Profile.objects.create(user=user_model, id_user=user.model.id) new_profile.save() return redirect('index') else: messages.info(request, 'Password Mismatch1') return redirect('signup') else: return render(request, 'signup.html') In the past I've just created my own user models rather than using the Django one. If you could include any ref documents in your reply … -
request.POST doesn't detect the name of input field
I would like to know which form was submitted in django, and I did this by using the name of the input field and detect it if it's also the name in request.POST. However, this doesn't seem to work. HTML <input type="file" name="coverPhoto" accept="image/*" id="id_coverPhoto"> <input type="file" name="profilePic" accept="image/*" id="id_profilePic"> views.py if request.method == 'POST': if 'profilePic' in request.POST: profile_photo_form = ProfileForm(request.POST, request.FILES, instance=user) if profile_photo_form.is_valid(): profile = profile_photo_form.save(commit=False) profile.save() return HttpResponseRedirect(reverse("my-profile")) if 'coverPhoto' in request.POST: cover_photo_form = CoverPhotoForm(request.POST, request.FILES, instance=user) if cover_photo_form.is_valid(): cover = cover_photo_form.save(commit=False) cover.save() return HttpResponseRedirect(reverse("my-profile")) -
How do I display specifically user home in django?
I want to implement to see specifically user home by other users. I did this method by def function. Is there a way to do it with a class function? How does urls.py set? views.py def Userrequest(request,user_id): user = CustomUser.objects.filter(id= user_id) return render(request, 'account/userpage.html', {'user': user}) urls.py path('<int:user_id>/', Userrequest, name= 'Userrequest'), -
django.contrib.sessions legacy? What should I use instead?
I'm following a tutorial to build a full-stack app using Django and Next.js. In the process of identifying users, the tutorial uses sessions. I have a basic understanding of sessions, so I decided to go along and learn about them. I eventually ran into a problem where one of my states wasn't updating with the response from the backend. I noticed that when sending a request to the backend, the session_key printed None. This is the code in views.py: class CreateRoomView(APIView): serializer_class = CreateRoomSerializer def post(self, request, format=None): print(self.request.session.session_key) if not self.request.session.exists(self.request.session.session_key): self.request.session.create() print(self.request.session.session_key) I scoured the web to find a solution. In the process, I learned a ton, and I kept reading information about the django.contrib.sessions app was legacy and would be a problem with new chrome versions. What should I make of this and what alternatives are there to sessions? I want to keep following the tutorial, but I'd like to apply the current best practices. What should I use instead of sessions? Thanks -
Django Rest Framework error: {'user': [ErrorDetail(string='This field is required.', code='required')]}
Unable to add a new customer to the database.. I made a class Named customer that has a one-to-one relationship with a class named User that is an AbstractUser I want to send the data through rest API so that I can create a new customer in the customer table and a new user that is One To One Related to the customer from the same view. User Model class User(AbstractUser): # Add additional fields here id = None email = models.EmailField(max_length=254, primary_key=True) name = models.CharField(max_length=100) password = models.CharField(max_length=100) is_patient = models.BooleanField(default=False) is_doctor = models.BooleanField(default=False) is_homesampler = models.BooleanField(default=False) is_pathologist = models.BooleanField(default=False) is_admin = models.BooleanField(default=False) is_staff = models.BooleanField(default=False) is_active = models.BooleanField(default=False) date_joined = models.DateTimeField(auto_now_add=True) last_login = models.DateTimeField(auto_now=True) first_name = None last_name = None username = None USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['name', 'password'] objects = CustomUserManager() def __str__(self): return self.email # Ensure that the password is hashed before saving it to the database def save(self, *args, **kwargs): self.password = make_password(self.password) super(User, self).save(*args, **kwargs) def has_perm(self, perm, obj=None): return self.is_superuser User Serializer class UserSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() # fields = (['id', 'username', 'email', 'name']) fields = '__all__' customer Model class customer(models.Model): user = models.OneToOneField( get_user_model(), on_delete=models.CASCADE, primary_key=True) real = models.BooleanField(default=False) … -
Create Multiple Instances From One Model Django
I'm trying to understand how to create multiple instances on creation of a model in django. Eventually I want to create more than one but I'm just trying to get the signal to work at the moment. This is what I have so far that isn't working. I want it to create a duplicate of this model. from datetime import datetime, timedelta import django from django.conf import settings from django.db import models from django.db.models.signals import post_save from django.dispatch import receiver class BudgetTransaction(models.Model): """ Individual transaction for Budget """ transaction_types = [ ('FI', 'Fixed Income'), ('FE', 'Fixed Expenses'), ('EC', 'Extra Cashflow'), ] frequencies = [ ('one', 'one off'), ('wk', 'weekly'), ('fort', 'fortnightly'), ('mon', 'monthly'), ('yr', 'yearly'), ('day', 'specific day'), ] today = datetime.today().strftime('%Y-%m-%d') owner = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, help_text="Owner of the item" ) transaction_type = models.CharField(max_length=40, choices=transaction_types, default=1) transaction_name = models.CharField(max_length=100, null=False) transaction_amount = models.IntegerField(null=False) next_date = models.DateField(null=False, default=today) frequency = models.CharField(max_length=20, choices=frequencies, default=1) complete = models.BooleanField(default=False) def __str__(self): return self.transaction_name class Meta: ordering = ['next_date'] @receiver(post_save, sender=BudgetTransaction) def create_forecasted(sender, instance, created, **kwargs): if created: today = datetime.today() this_month = today.month months_left = 12 - this_month if sender.frequency == "mon": BudgetTransaction.objects.create(owner=instance.owner) Thanks, Mitchell -
Find if a model object is assigned the last instance of another model
Working on fee management case in Django. Code is given below: class Student(models.Model): name = models.CharField("name",max_length=200) cell_no = models.CharField("cell No",max_length=200) address = models.CharField("address",max_length=500) class Meta: verbose_name_plural = "Student" def __str__(self): return self.name class FeeType(models.Model): name = models.CharField("fee Type", max_length=200) class Meta: verbose_name_plural = "Fee Type" def __str__(self): return self.name class CollectFee(models.Model): student = models.ForeignKey(Student, on_delete=models.CASCADE) feetype = models.ForeignKey(FeeType, on_delete=models.CASCADE) amountdue = models.PositiveIntegerField("amount Due") amountpaid = models.PositiveIntegerField("amount Paid") balance = models.PositiveIntegerField("Balance") class Meta: verbose_name_plural = "Collect Fee" def __str__(self): return self.student.name Fee Type is like Admission Fee, January Fee, February Fee etc. I want to get the list of all students who have not yet been assigned the last instance of the FeeType. For example, if in the CollectFee the student is assigned January, February month fee then Ok, if the student is not assigned March Fee, he should be included in the list. I could get the list of all students through: students= Student.objects.all() I can deal with simple filters but don't know how to apply the filter to solve the above mentioned problem. -
value={{ string }} gives only 1 word of the string
{% for q, con in questions_dict.items %} <form action="{% url 'psycho:modify_question' %}", method="post"> {% csrf_token %} <input type="hidden" name="oldtext" value={{ q }}> <input type="text" placeholder="Text of your question" name="text" value={{ q }} even if q equals "The Count of Monte Cristo" full book, only the first word is displayed on the page. If I do {% for q, con in questions_dict.items %} <form action="{% url 'psycho:modify_question' %}", method="post"> {% csrf_token %} {{ q }} <input type="hidden" name="oldtext" value={{ q }}> <input type="text" placeholder="Text of your question" name="text" value={{ q }} I see the full string. How to fix this? -
How to receive in django backend from client webcam using django channels
I am creating a django api that has an endpoint point that receives live video streams from the client webcam and passes the frames through a machine learning model to make real-time predictions which are sent back to the client side. I am trying to use django-channels. I am fairly new at this webrtc thing. I want to know how to implement the django backend to do exactly this. -
Printing a 2d list in Django template
I have a model with a JSONField class Session(models.Model): title = models.CharField(max_length=50) application_list = JSONField(blank=True, null=True) and i want to bring the values on frontend and use it through django template for some filtering. An example of what this JSONField may contain: [{"type": "questionnaire", "primary_key": "13"}, {"type": "questionnaire", "primary_key": "4"}, {"type": "questionnaire", "primary_key": "8"}]. I managed to get the data in a list with: app_data = Session.objects.values_list('application_list', flat=True) pub_data = [] for app in app_data: for x in app: pub_data.append( [x['type'], x['primary_key']]) print(pub_data) which prints [['questionnaire', '13'], ['questionnaire', '4'], ['questionnaire', '8'], ['seriousgame', '16']]. My question is how do I access each individual 'type' and 'key' in django template. I tried using {% for app in pub_data %} {{app}} {% endfor %} or with app(0) app[0] but none of them work. -
How do I make a ModelChoiceField's values show the actual values on a page instead of numbers?
There is a field (categories) in my form (NewListing) that should has 4 values that can be selected in a form on one of my pages. However, when I want to show which value was selected I get a number instead of the value. The values are: New Refurbished Opened Used So if New was selected earlier, when this value is shown on another page it is shown as 1 instead of New. How do I fix this? models.py: class Listing(models.Model): ... condition = models.CharField(max_length=20) forms.py: condition_choices = ( (1, 'New'), (2, 'Refurbished'), (3, 'Opened'), (4, 'Used'), ) class NewListing(forms.Form): ... condition = forms.ChoiceField(choices=condition_choices, widget=forms.Select(attrs={ 'class': 'condition', })) html: (irrelevant but shows where it would be used - it selected on another page though - this works fine) <div class="condition"> <p> Condition: <strong> {{ listing.condition }} </strong></p> </div> -
Django filter then count objects in queryset that don't match user
I have committees where you cannot vote on yourself. I am trying to have committee_member_count filter out users where the user matches the approval_request's provider. How can I filter out credentialing_committee_members that match the provider? This was my attempt: "credentialing_committee__members", distinct=True, filter=~Q(credentialing_committee__members=self.first().provider.user), ), -
Django | set the default value of a model field to be the email of the logged in user
I'm trying to display user specific content in my django website and I am one step away from completing this task. In models.py I need the contact_email field to have its default value to be the email of the logged in user. I've tried many methods of doing this but nothing has worked yet. models.py class Account(AbstractUser): email = models.EmailField(verbose_name='email', max_length=60, unique=True) name = models.CharField(max_length=45, unique=False) username = models.CharField(max_length=100, default='') date_joined = models.DateTimeField(verbose_name='date joined', auto_now_add=True) last_login = models.DateTimeField(verbose_name='last login', auto_now=True) is_admin = models.BooleanField(default=False) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) is_superuser = models.BooleanField(default=False) is_employee = models.BooleanField(default=True, verbose_name='Are you using FilmLink as an employee?') USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['name', 'is_employee'] objects = MyAccountManager() class Meta: permissions = [ ("post_jobs", "Can post jobs"), ] def __str__(self): return self.name def has_perm(self, perm, obj=None): return True def has_perms(self, perm): return True def has_module_perms(self, app_label): return True @property def is_staff(self): return self.is_admin class Job(models.Model): company = models.CharField(max_length=40, null=True, verbose_name="Company/Employer") description = models.TextField(null=True) role = models.CharField(max_length=25) area_of_filming = models.CharField(max_length=50, verbose_name="Area Of Filming", default="") contact_email = models.EmailField(verbose_name='Contact Email', max_length=60, default='')#stuck on setting this default created = models.DateTimeField(auto_now_add=True) user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE) def __str__(self): return self.company views.py @login_required(login_url='login') def manage_jobs(request): if request.user.is_employee: return redirect('home') else: form = … -
Django form showing up in template as form variable name
I have created a custom user model in Django and am trying to create a login form. Instead of the form showing up in the Django template, login_form, the name of the variable, shows up. forms.py class ProfileLogin(forms.ModelForm): password = forms.CharField(label="Password", widget=forms.PasswordInput) class Meta: model = Profile fields = ("username", "password") def clean(self): username = self.cleaned_data.get('username', None) password = self.cleaned_data.get('password', None) if not authenticate(username=username, password=password): raise forms.ValidationError("Invalid username and/or password.") return None views.py def login_views(request): context = {} user = request.user if user.is_authenticated: return redirect('index') if request.POST: login_form = ProfileLogin(request.POST) if login_form.is_valid(): username = request.POST['username'] password = request.POST['password'] user = authenticate(username=username, password=password) if user: login(request, user) return redirect('index') else: login_form = ProfileLogin() context['login_form'] = ['login_form'] return render(request, "capstone/login.html", context) html <form method="post"> {% csrf_token %} {% for field in login_form %} <h5>{{ field.label_tag }} {{ field }} {% if field.help_text %} <span>{{ field.help_text }}</span> {% endif %} {% for error in field.errors %} <p>{{ error }}</p> {% endfor %} {% if login_form.non_field_errors %} <div>{{ login_form.non_field_errors }}</div> {% endif %} </h5> {% endfor %} <button type="submit">Login</button> </form> I tried changing {% for field in login_form %} <h5>{{ field.label_tag }} {{ field }} to {{ login_form }}, but the same thing happens. … -
Edit Form Submit handler for a Model
I have a fairly simple django model in a Wagtail CMS; essentially: from django.db import models class Thingy(models.Model): name = models.CharField(max_length=255, blank=False, null=False, unique=True) # Many other fields. panels = [ FieldPanel("name"), # ... ] I need to perform an action when this model is saved via the Wagtail model edit form (eg /admin/section/thingy/123/edit). Currently, I have registered a post_save signal, however this has resulted in the method being called when the model is saved programmatically (via an import sync task). I've had a look in the Django docs, but can't see anything obvious... is there a way to register a signal for the form submission (ideally after the internal submission and save is handled). (If it's any relevance; I need to trigger a search reindex based on a relation to the model; anything that references instance 123 of thing Things that was saved needs to be reindexed)