Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
POST http://127.0.0.1:8000/add-to-cart 500 (Internal Server Error)
Hi so I'm working on a ecommerce website using Django and my add to cart button keeps throwing this error. So when i click it before i've logged in it does its job and displays a "Log in to continue" message on the screen but after i login and click the "add to cart" button again it throws the error. I'm new to Django and i've been following https://www.youtube.com/watch?v=3YKXhdOGR-s&list=PL_99hMDlL4d2zsGU5nOgADmRc6A8msXyh&index=12&ab_channel=SharmaCoder this video for reference. this is my js file This the view.py file This is the html file urls.py AND ERROR -
ModelForm including ForeignKeys with multiple databases
Having two models in models.py such as: provider_name = models.TextField(primary_key=True, default=None) provider_address = models.TextField(null=False, blank=False, default=None) class PhoneNumber(models.Model): number = models.IntegerField(primary_key=True, default=None) provider = models.ForeignKey(PhoneProvider, on_delete=models.SET_NULL, default=None, null=False, blank=False) And then in forms.py I create two model forms: class Meta: model = PhoneProvider fields = "__all__" class FormPhoneNumber(forms.ModelForm): class Meta: model = PhoneNumber fields = "__all__" My question is, how to use the FormPhoneNumber (which has a ForeignKey) when using multiple databases with manual routing. Do I need to overwrite the field employing a query employing .using('database_name')? I am aware that Django does not support cross-referencing of Foreign keys along multiple databases, but I am talking about two tables placed in the same database. How can I let the ModelForm now the database from which it can extract the foreign key options? -
django oscar order app abstract models customization
I want to override django-oscar Order class which Inheritance from AbstractOrder class (in order apps and abstract_models.py file) but when i try to use migrate & makemigrations commands it says that model there is a problem in register_model function and i have no idea how i can solve it (i need to use basket_total_incl_tax property and currency field does anyone know where can i find these two in other classes?) if anyone knows what the problem is and what should i do to solve it please tell me. thank you. -
Render label names instead of integer fields in Django templates
As part of my models, I have an IntergerField "choices". These choices have been labelled. (Label 1 = Straw, Label 2 = Yellow...) However, the HTML renders the integer rather than the actual labels. What do I need to do return the labels and not the field's interger? Is it somethng I need to do in views? Or do I address it directly in the html file? Code below: Models CHOICE1=( ('',''), (1,'Straw'), (2,'Yellow'), ) class Model1(models.Model): user = models.ForeignKey(User,blank=True,on_delete=models.CASCADE) Choice_A = models.IntegerField(choices=Choice1,default=0) Views def account(request): review_list = Model1.objects.all return render(request,"main/account.html", {'review_list':review_list}) HTML <h6>Champagnes</h6> {% for Model1 in review_list%} <table class="table table-hover table-striped table-bordered "> {% if Model1.user == user%} <tr> <th>Text</th><th>{{Model1.Choice_A }}</th> </tr> {%endif%} </table> {% endfor %} -
Celery results not updating after dockerization
I'm currently putting my Django app on Docker. I successfully dockerized Django, gunicorn, nginx and Celery, however when I run a Celery task, even though it's executed (displayed in the logs), the results are not stored to my database. That worked before dockerizing everything so that probably comes from my docker configurations, but I didn't manage to find which part was incorrect/incomplete. Also, I'm using the default sqlite3 Django database as I don't need to store a huge amount of data. Here is my docker-compose.yml: version: '3.8' services: django_gunicorn: volumes: - db:/db.sqlite3 - static:/static - media:/media env_file: - env build: context: . ports: - "8000:8000" command: sh -c "python manage.py migrate && python manage.py collectstatic --no-input && gunicorn main.wsgi:application --bind 0.0.0.0:8000" nginx: build: ./nginx volumes: - static:/static - media:/media ports: - "80:80" depends_on: - django_gunicorn rabbitmq3: image: rabbitmq:3-alpine ports: - 5672:5672 celery: restart: always build: context: . command: celery -A main worker -P eventlet -c 100 -l INFO env_file: - env depends_on: - rabbitmq3 - django_gunicorn volumes: - db:/db.sqlite3 volumes: db: static: media: Dockerfile FROM python:3.10.5-alpine ENV PYTHONUNBEFFERED = 1 RUN pip install --upgrade pip COPY ./requirements.txt . RUN pip install -r requirements.txt COPY ./src /app WORKDIR /app celery.py import … -
Is Django able to handle PostgreSQL's truncated table names?
I am creating a Django application with PostgreSQL and some of my model names have become a bit long. Now, PostgreSQL is truncating the table name for such models to 63 characters. Please throw some light as to whether Django is able to handle such truncated table lengths on its own.. For example, consider a sample model with: App Name: MosaicApp Model Name: BeethovenBandLovedRockPopHipHopMetalReggaeLatinMetalCountryElectronicMusic Table Name created: MosaicApp_BeethovenBandLovedRockPopHipHopMetalReggaeLatinMe2dcf (or, something of this sort) Should I overlook this table name truncation? I am able to successfully apply-unapply my migrations. But it would be great if the experienced guys could throw some light as to whether this phenomenon can be overlooked. -
APScheduler not creating the job in AWS deployed Django Application
I have deployed an application which consists of a job like the following: from apscheduler.triggers.combining import OrTrigger from apscheduler.triggers.cron import CronTrigger from reports.views import AutoMails def start(): print("reached") scheduler = BackgroundScheduler() mail = AutoMails() trigger = OrTrigger([CronTrigger(hour=17, minute=9)]) scheduler.add_job(mail.get,trigger, seconds=10, id="test_mails_001", replace_existing=True ) scheduler.start() I tested this on the local server and it is working but upon deployment I didn't receive any email Is AWS bocking this somehow? -
How to create pdf file using Django template with proper CSS?
I am new to Django and stack overflow as well. I want to create Django template as a pdf file with all CSS styles .I used following code to create pdf file it renders file content properly but not CSS styles. Here is the code I have used : from io import BytesIO from xhtml2pdf import pisa from django.template.loader import get_template from django.http import HttpResponse from django.shortcuts import render def home(request): pdf = render_to_pdf("abc.html") return HttpResponse(pdf, content_type='application/pdf') def render_to_pdf(template_src, context_dict={}): template = get_template(template_src) html = template.render(context_dict) result = BytesIO() pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result) if not pdf.err: return HttpResponse(result.getvalue(), content_type='application/pdf') else return None -
Django CKEDITOR set max size of an image
how can I set the max size that an image can have in django-ckeditor? Here is the model's code: class Post(models.Model): ... text = RichTextUploadingField(max_length=1050,null=True,blank=True) I tried to use CKEDITOR_THUMBNAIL_SIZE but it didn't work. Also if I can't set the max size of an image is there any other way to resize the image? Thanks. -
Allow user website embed and export django
I am building a t $ c generator website with django. How do I allow user export files and website embed -
Why is google console shows anchor text as URL Django Template instead of actual text?
I have deployed a website using Django (https://www.pkelection.com/). This is my very first app so still trying to learn. So I was checking my SEO progress and ended up checking my google search console and saw this: Google search console results for top linking text The very first URL in top linking text pertains to (https://www.pkelection.com/by-election-p/provincial-assembly/1063-by-election-2022/). I am trying to figure out why google console is showing url text instead of actual anchor text. The same thing is happening with rest of the top linking text so I really fell that I am doing something wrong but can't figure our what. -
Unit testing with AWS Cognito and GraphQL
I'm currently writing tests for my software but got stuck at the point. I try to get data from my db with a normal GraphQL Query but my endpoint is first checking, if the idToken within the header is valid. For the user handling I'm using AWS Cognito but couldn't find a good way to mock the login to retrieve the valid token to query and mutate the data within various endpoints. Any idea how to handle this case? Here is my code from the graphene docs (https://docs.graphene-python.org/projects/django/en/latest/testing/): # Create a fixture using the graphql_query helper and `client` fixture from `pytest-django`. import json import pytest from graphene_django.utils.testing import graphql_query # https://docs.graphene-python.org/projects/django/en/latest/testing/ @pytest.fixture def client_query(client): def func(*args, **kwargs): return graphql_query(*args, **kwargs, client=client) return func # Test you query using the client_query fixture def test_some_query(client_query): response = client_query( ''' query GetAllProjectConfig{ getAllProjectConfig{ project{ id slug name } config{ id } } } ''', ) content = json.loads(response.content) assert 'errors' not in content -
How to get last six month data from date field - django
I do have a model as below class employee(models.Model): employee_name = models.CharField(max_length=100) joining_Date = models.DateField(blank=False, null=False) I want to get data for last six month(including current month) joined employee count month wise. Example: July : 12, June : 10, May : 8, April : 16, March : 13, February : 10, joining_Date storing like "2022-07-22".How to get done this by having date field. Thanks in advance. -
Pass multiple arguments to a custom filter Django
I have a custom filter that looks like this register = template.Library() @register.filter def makebreadcrumbs(value, arg): pass How can I pass multiple arguments to the filter? {% with request.resolver_match.namespace as name_space %} {{ request.path|makebreadcrumbs:name_space|safe }} {% endwith %} In the code above makebreadcrumbs is my custom filter, request.path is a variable (value), and name_space is an argument. -
Django: how to save form and perform math operation with along side saving the form in django?
i am trying to save a form, and after i want to get the new_balance and update the value, i have a function that would save a form, and the form have a field amount, so what i want is this, if i save the form i want to get the new_balance and substract the new_form.amount from the balance, it works but doesn't seems to be saving the new_balance when i refresh my page it shows this alert The page that you're looking for used information that you entered. Returning to that page might cause any action you took to be repeated. Do you want to continue?. views.py @login_required def withdrawal_request(request): user = request.user profile = Profile.objects.get(user=user) total_investment = PurchasedPackage.objects.filter(paid=True, user=request.user).aggregate(Sum("investment_package__price"))['investment_package__price__sum'] bonus_earning = profile.earning_point total_ref_earning = profile.referral_point indirect_ref_earning = profile.indirect_ref_earning daily_login_earning = profile.daily_login_earning bonus_point = profile.bonus_point social_share_points = profile.social_share_points pending_payout = WithdrawalRequest.objects.filter(user=request.user, status="pending").aggregate(Sum("amount"))['amount__sum'] if pending_payout == None: pending_payout = 0 total_payout = WithdrawalRequest.objects.filter(user=request.user, status="settled").aggregate(Sum("amount"))['amount__sum'] try: all_earning = total_investment + bonus_earning + total_ref_earning + bonus_point + social_share_points + indirect_ref_earning + daily_login_earning except: all_earning = bonus_earning + total_ref_earning + bonus_point + social_share_points + indirect_ref_earning + daily_login_earning try: new_balance = total_investment + bonus_earning + total_ref_earning + bonus_point + social_share_points + indirect_ref_earning + daily_login_earning … -
Yandex Oauth2 social_django 400 Unknown client with such client_id
When i used 'social_core.backends.yandex.YandexOAuth2', yandex returned it to me: 400 Unknown client with such client_id, what i can do? my setup settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_cleanup.apps.CleanupConfig', 'social_django', 'bootstrap5', ] AUTHENTICATION_BACKENDS = [ 'social_core.backends.yandex.YandexOAuth2', 'django.contrib.auth.backends.ModelBackend', ] SOCIAL_AUTH_URL_NAMESPACE = 'social' YANDEX_OAUTH2_CLIENT_KEY YANDEX_OAUTH2_CLIENT_SECRET my template file <a href="social/login/yandex-oauth2" class="btn btn-light col-2 m-2"> -
Django ImageField image uploaded correctly, but not being displayed in template
I am using Django 3.2 settings.py MEDIA_ROOT = os.path.join(BASE_DIR, 'public', 'media') MEDIA_URL = '/media/' models.py def get_dir(instance, filename): return os.path.join('users/profiles', filename) class Foo(models.Model): profile_pic = models.ImageField(blank=True, null=True, upload_to=get_dir) @property def profile_image(self): if self.profile_pic and hasattr(self.profile_pic, 'url'): return self.profile_pic.url else: return getattr(settings, 'USER_DEFAULT_PROFILE_PIC', '/static/userprofile/img/blank-profile-picture.png') page.html <div> <div class="profile-img"> <img style="background-image: url('{{profile.profile_image}}');" /> </div> </div> When I create an instance of Foo and add a picture, the file is correctly saved in: /path/to/myproj/public/media/users/profiles/ However, when I view a page that renders the image, I get a 404 error: http://127.0.0.1:8000/media/users/profiles/tmp8jccrvwa.png However, when I do not load a picture, then the default blank profile is correctly displayed. Why is this? - and how do I fix it? Note: I have only tested this in development, and have not yet tested in production. Note: I am not appending STATIC and MEDIA paths to my urls.py (conditioned on DEBUG flag) - not sure if this is what is causing this issue. -
How do I get the size( gb , mb ) of a video in python?
class videos(models.Model): caption = models.CharField(max_length=200,null=True) videoes = models.FileField(default='Product.png', null=True, validators=[validators.FileExtensionValidator(allowed_extensions=['mp4','mkv']), validators.MaxLengthValidator(limit_value=(10))]) created = models.DateTimeField(auto_now_add=True) -
Individual product detail pages with django cms
I have an e-commerce app based on Django. The product model contains basic fields like name, brand, short description, etc. So far, I only have a "generic product detail page" that displays these information for each product. Now I want to create more extensive product detail pages for some of the products with django cms so that they contain more product information and seo keywords. This means that most products would just have the "generic" detail page and some have a more extensive version. I am using a url path like mydomain.com/products/ and the view finds the respective product to be displayed using the product-slug. So far, this "/products/..." path is handled outside of the django-cms url namespace. I am rather new to django cms and unsure how I should handle this project. My first idea would be: Add empty django-cms placeholders to the generic detail page Include the /products/... path in the django-cms namespace Run a script that creates a page in django-cms for each individual product (whenever a new product is added to the database, a new django-cms page must then be added as well programatically) Go to the products of high interest and add additional content with … -
TypeError at / Accept() got an unexpected keyword argument 'name'
I want to take data from user and save it to the database by using Django. Have tried to solve it. But I am not able to solve this problem and didn't find any working solution on the internet. I'm getting this error My views.py file def Accept(request): if request.method == "POST": name = request.POST.get("name","") phone = request.POST.get("phone","") email = request.POST.get("email","") school = request.POST.get("school","") degree = request.POST.get("degree","") university = request.POST.get("university","") skill = request.POST.get("skill","") about_you = request.POST.get("about_you","") previous_work = request.POST.get("previous_work","") accept = Accept(name=name,phone=phone,email=email,school=school,degree=degree,university=university,skill=skill,about_you=about_you,previous_work=previous_work) accept.save() return render(request,"accept.html") models.py class profile(models.Model): name = models.CharField(max_length=255) phone = models.CharField(max_length=12) email = models.EmailField(max_length=100) school = models.CharField(max_length=100) degree = models.CharField(max_length=100) university = models.CharField(max_length=100) skill = models.TextField(max_length=1000) about_you = models.TextField(max_length=1000) previous_work = models.TextField(max_length=1000) accept.html {% csrf_token %} Name Phone Email School Degree University Skills About You Previous Work Submit enter code here Here is the full traceback error -
Django oAuth2 without saving the user into the database
I'm currently coding a website with Django and I successfully implemented an external oAuth2. (I'm not using any libraries) the problem is that the user is saved in the database. I would like to avoid it for hosting costs reasons. In my current project, the oAuth2 is purely for verification purposes. Is there a way in Django to log in a user in without saving him to the database? I would like the website to keep him logged in if the page is refreshed but logged out if the page is closed. Thanks! -
Using icontains for search queries with spaces in Django
I made simple search through my site, which is searching through several models within app. It worked fine until i realized that it can't search queries with spaces. Is there any option to search with spaces? Model: class Event(BaseModel): name = models.CharField(max_length=255, blank=True) description = models.TextField(blank=True) Object Event.objects.create( name="Test query event", description="Test Description" ) Query itself: query = "test query" Event.objects.all().annotate(search=SearchVector("name")).filter(search__icontains=query) I'm using latest versions of Django+DRF+django-filters, but it's possible to add other packages to project. -
Makemigration with django4.0.6 and python3.10.5 doesn't work
I'm currently coding a blog as a side project, whenever I make a considerable modification in my models, I cannot migrate. This is my model from ckeditor.fields import RichTextField from django.contrib.auth.models import User from django.db import models from django.template.defaultfilters import slugify from django.urls import reverse class Tag(models.Model): name = models.CharField(max_length=255, default="Uncategorized") class Meta: ordering = ['name'] def __str__(self): return self.name def get_absolute_url(self): return reverse('blog:home') class Post(models.Model): ACTIVE = 'active' DRAFT = 'draft' CHOICE_STATUS = ( (ACTIVE, 'Active'), (DRAFT, 'Draft') ) title = models.CharField(max_length=255) title_color = models.CharField(max_length=50, default="white") header_image = models.ImageField(upload_to='images/headers', null=True, blank=True) author = models.ForeignKey(User, on_delete=models.CASCADE) table_content = RichTextField(default="CONTENTS", blank=True, null=True) body = RichTextField(blank=True, null=True) snippet = models.CharField(max_length=255, default="") date_published = models.DateTimeField(auto_now_add=True) status = models.CharField(max_length=10, choices=CHOICE_STATUS, default=DRAFT) slug = models.SlugField() tag = models.ManyToManyField(Tag) def __str__(self): return self.title + ' | ' + self.author.get_full_name() def get_absolute_url(self): return reverse('blog:article_details', args=(str(self.id), self.slug)) @property def date(self): return self.date_published.date() def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.title) return super().save(*args, **kwargs) class PostPicture(models.Model): name = models.CharField(max_length=255, default="") files = models.FileField(upload_to="images/post") def __str__(self): return self.name Now, in my model, I had the class named Category and decided I don't need it anymore and just renamed it Tag. When I make migrations, I have this error … -
Dajngo template rendering
When i render blogpost.html page i can't see any content in my page. Please any devloper help me. My code look like this. My urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='Blog_home'), path('<slug:slug>', views.blogpost, name='blogpost'), ] my views.py from django.shortcuts import render from django.http import HttpResponse from blog.models import Post # Create your views here. def index(request): post = Post.objects.all() context = {'post':post} return render(request, 'blog/bloghome.html', context) def blogpost(request, post_id): post = Post.objects.filter(slug=slug) context = {'post':post} return render(request, 'blog/blogpost.html', context) Template Name:- blogpost.html {% extends 'basic.html' %} {% block title %}Blog{% endblock title %} {% block body %} <div class="contaier"> <div class="row"> <div class="col-md-8 py-4"> <h2 class=" blog-post-title">{{post.title}}</h2> </div> </div> </div> {% endblock body %} -
Where can I find a list of all available methods of a request object in Django DTL?
How can I know what methods are used for request object in DTL? {{ request.WHAT }}