Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Check for password before accessing content in django
I am trying to build a functionality where users have to enter the passcode to access the site. If you go to this site it will ask for a password (123) before showing you the content: https://www.protectedtext.com/djangoproj I want to do it without forms.py. URL OF THE PAGE --> TEMPLATE --> ASK FOR PASSCODE --> SHOW CONTENT IF PASSCODE MATCHES models.py from django.db import models # Create your models here. class Text(models.Model): text = models.TextField(blank=True) slug = models.SlugField(unique=True) password = models.CharField(max_length=50) def __str__(self): return self.slug views.py from django.shortcuts import render from .models import Text import django.contrib.auth # Create your views here. def textview(request, slug): obj= Text.objects.get(slug=slug) return render(request, 'text/textpage.html', {'obj' : obj}) def home(request): return render(request, 'text/index.html', {}) I have tried creating a new template for password but I am still not getting that functionality. Thanks in advance -
How do i extend Django's auth user manager to add a method of my own?
I'm using Python 3.9 and Django 3.2. I want to use Django's auth module for basic user management and have added this in my settings.py file INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'cbapp', ] However, I woudl like to change the primary key of its user table to be a UUID and then add my own method, so I created this file at models/custom_user.py from django.contrib.auth.models import AbstractUser from django.db import models class CustomeUserManager(models.Manager): def get_active_users(self): qset = CustomUser.objects.filter( is_active=True ) return list(qset) class CustomUser(AbstractUser): pass uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) objects = CustomeUserManager() I would still like to have access to Django's original auth methods though, but it seems like I can't access them anymore, for example "create_user" ... >>> user = CustomUser.objects.create_user('Dave', 'myemail@test.com', 'johnpassword') Traceback (most recent call last): File "<input>", line 1, in <module> user = CustomUser.objects.create_user('Dave', 'myemail@test.com', 'johnpassword') AttributeError: 'CustomeUserManager' object has no attribute 'create_user' What's the proper way to extend Django's auth user methods while adding some of my own? -
Django rendering <a> tag with double underline
I am finishing my first project using Django (a blog). I first made the front-end using HTML and CSS and everything was smooth. I used an identical copy of the CSS file. When rendering the same HTML template using Django, it shows double underline animation under the tag. The code used: <div> <ul id="underline"> <li class="nav-items-lis"><a href="#" class="nav-items">Posts</a></li> <li class="nav-items-lis"><a href="#" class="nav-items">About</a></li> <li class="nav-items-lis"><a href="#" class="nav-items">Blog</a></li> <li class="nav-items-lis"><a href="#" class="nav-items">Contact</a></li> </ul> </div> The Django template: <div> ... </div> <div> <ul id="underline"> <li class="nav-items-lis"><a href="#" class="nav-items">Posts</a></li> <li class="nav-items-lis"><a href="#" class="nav-items">About</a></li> <li class="nav-items-lis"><a href="#" class="nav-items">Blog</a></li> <li class="nav-items-lis"><a href="#" class="nav-items">Contact</a></li> </ul> </div> <div class="container"> <div class="card-wrapper"> {% block body %} {% endblock %} </div> The code related to tags is the same in both (the HTML code and the Django template). Any hints on how to solve this issue? -
Django error when running migrate - id null
I am trying to make new migration for my django project after adding and removing some columns in table called payment. When running python manage.py makemigrations, everything working fine, and it results in new migration file 0002_auto_20211107_1714.py. Next, I try to run python manage.py migrate and it result in this error File "/home/.local/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) psycopg2.errors.NotNullViolation: null value in column "id" violates not-null constraint DETAIL: Failing row contains (null, payment, 0002_auto_20211107_1714, 2021-11-07 17:14:11.036703+00). Anyone ever faced this problem? -
What's the proper way to check in a Model's save() method if a FileField was committed in Django?
In Django, if you are overriding the save method of a model with a FileField, you can do something like this: class MyModel(models.Model): my_file = models.FileField() def save(self, *args, **kwargs): if self.my_file and not self.my_file._committed: # The file changed This lets you detect anytime a new file is uploaded. This can either happen if a new instance of MyModel is being created, or one is being modified, and a new file is replacing an old file (or no file). This is very convenient for cases where you need to read the file, and do something, but only if the file changed. This works, but the slight problem is that the my_file._committed attribute starts with an underscore, indicating that it's not meant to be used outside of the class it's defined in. Is there a proper way to detect if the file in the FileField changed during the current save() operation without using the private _.committed attribute? -
first_name is added to the tuple
Im using django-allauth. I added more fields in form (firstn_name and last_name) in form: myapp/forms.py class CustomSignupForm(forms.Form): first_name = forms.CharField(max_length=30, label="first_name", strip=True, widget=forms.TextInput(attrs={'placeholder': "name", })) last_name = forms.CharField(max_length=30, label='last_name', strip=True, widget=forms.TextInput(attrs={'placeholder': 'last_name',})) def signup(self, request, user): user.first_name = self.cleaned_data['first_name'], user.last_name = self.cleaned_data['last_name'] user.save() return user after which I specified a link to this form in the settings. When registering, these two fields appeared, but: Now, when registering, my first_name is in the tuple. I output in the template: {{user.first_name}} Last name is displayed normally. What can be done so that the first name is not in a tuple, but just a string? -
Pagination codes is not working with annotate
I wanted to display a table by filtering records from the database. Therefore I filtered the records and assigned them to a 'qc3_table_data'. Also, I needed 'first_name' from the USER table. I used ANNOTATE and added 'qc2_engineer_query' to the 'qc3_table_data'. Everything works well till now. But when I use paginate code, it throws an error. Can anyone help me to fix this issue? views.py def designer_home_view(request): qc3_table_data = cn_data_tables.objects.filter( engineer=request.user).filter(qc3_submit_status=True ) qc3_table_data = qc3_table_data.annotate(qc2_engineer_query=Subquery(User.objects.filter( id=OuterRef( 'qc_engineer_2' ) )[:1].values( 'first_name' ) )) Codes for Pagination page = request.GET.get( 'page', 1 ) paginator = Paginator( qc3_table_data, 2 ) try: qc3_table_data = paginator.page( page ) except PageNotAnInteger: qc3_table_data = paginator.page( 1 ) except EmptyPage: qc3_table_data = paginator.page( paginator.num_pages ) get_dict_copy = request.GET.copy() params = get_dict_copy.pop( 'page', True ) and get_dict_copy.urlencode() return render( request, 'Home_page_designer.html', {'cn_table_data':qc3_table_data, 'qc2_table_data':qc2_table_data, 'my_task':my_task, 'filter':filter1, 'params':params, } ) I am getting following error System check identified no issues (0 silenced). November 07, 2021 - 22:02:29 Django version 2.2.7, using settings 'QC_project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. C:\Users\ipcramk\Desktop\Desktop files\pYTHON TRAINING\Django\Quality_Check_UI\QC_project\app1\views.py:242: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'app1.models.cn_data_tables'> QuerySet. paginator = Paginator( qc3_table_data, 2 ) Internal Server Error: /cn_entry/designer_home Traceback (most recent … -
Referring to a relationship in queryset
I have two models (Event and Deligate) related by foreign keys. I have a link on the delegate’s detail page that queries if the event is paid or not. I can’t seem to get the right query set to use. class Event(models.Model): event_title = models.CharField(max_length=30) about_event = models.TextField() paid_event = models.BooleanField(default=False) created_on = models.DateTimeField(auto_now_add=True) updated_on = models.DateTimeField(auto_now=True) class Deligate(models.Model): event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='participating_ event') deligate_name = models.CharField(max_length=10, blank=True, null=True) deligate_bio = models.TextField(blank=True, null=True) created_on = models.DateTimeField(auto_now_add=True) updated_on = models.DateTimeField(auto_now=True) def event_check_view(request, pk): deli = Deligate.objects.get(pk=pk) & Deligate.objects.get(event = 'participating_ event') if deli. paid_event: do something… else do something else… -
Eurodns + Django + Dynamic Ip
I bought an domain from Eurodns and wanted connect it with my first website on my computer at home. (I'm a noob - just starting to understand how programming works.) Long story short, when I write my URL it doesn't reach my website, nor if I type www.site.com nor if I type only site.com. (when I type with www. it shows me some kind of default page by eurodns I think. The none www. shows this site can't be reached) What I have tried. I installed a VM ubuntu server on a proxmox with django project and apache2. Then as a first test I used an free domain from noip with their dynamic-Ip tool. It worked just fine without doing any special setup (I might changed a port in apache settings but don't remember for sure). I portforwarded port 80 and 443 from router to my port from the webhost. Then I tried to make the website be rendered by accessing my custom domain bought from Eurodns, via a ddclient/Dynamic DNS offered by Eurodns. For some reason this doesn't work at all. I tried in the meantime to solve the SSL certificate - did this screw things up? Also activated … -
How to access a Django UpdateView with using a uuid as slag
I'm wondering on how I can access a UpdateView by using a uuid as slug. So my goal is an URL like http://myapp.example.de/edit/7efdbb03-bdcf-4b8a-85dd-eb96ac9954fd I have defined the the view like this: class DeviceEventUploadView(UpdateView): model = Event slug_url_kwarg = 'uuid_slug' slug_field = 'unique_id' and urls.py like this: url(r"^edit/<uuid:uuid_slug", DeviceEventUploadView.as_view(), name="event_update" ), Here I'm getting: Using the URLconf defined in myproject.urls, Django tried these URL patterns, in this order: admin/ ^edit/<uuid:uuid_slug [name='event_update'] The current path, 7efdbb03-bdcf-4b8a-85dd-eb96ac9954fd/, didn’t match any of these. Where is my failure in thinking? -
How to sort list in DRF?
I've got two models with onetoone relation user and blog. While listing users I want to have users with blog on top. How to order users so that users with blog is on first of list and secondary order by users id? My Models: class User(BaseModel): name = models.CharField(max_length=100) class Blog(BaseModel): user = models.OneToOneField(Asset, related_name='blog', null=True) title = models.CharField(max_length=100) My view: class UserAPIView(ListAPIView): queryset = User.objects.all() serializer_class = UserSerializer -
Why is celery task not pulling all the records from the database?
I am using celery tasks to pull records from a different database to my local database.Yes when i start celery worker and apply the tasks,the records are pulled and updated into my localdb.The problem is,the task does not pull all the records.I only get 20records while there are more than 1000 records.Who might be knowing the issue? here is my code. @shared_task() def customer_task(): customerdata =Customer.objects.using('my_db').values('customer_no') print(customerdata.count()) for item in customerdata.iterator(): cust_no = item['customer_no'] obj, created = Customer.objects.filter(customerNo=customer_no).update_or_create(customerNo=customer_no) print("customer created or updated in db") -
How can I use custom arguments with Django globally?
I'm trying to use django custom commands(arguments). Also, I want to use it globally to take hyper-parameters of deep-learning model like, toolkits.initialize_GPU(args) So, I've already made custom commands on management/commands from django.core.management.base import BaseCommand, CommandError import argparse class Command(BaseCommand): def add_arguments(self, parser): # set up training configuration. parser.add_argument('--gpu', default='', type=str) ''' something more ''' def handle(self, *args, **options): # I don't know what to do here. print(" ") However, I've got 'manage.py: error: unrecognized arguments: runserver' error. How should I do? -
i want to print "hello!!!!!" from home.html in django but it says TemplateDoesNotExist
i want to print "hello!!!!!" from home.html in django but it says TemplateDoesNotExist. code of all the pages home.html <h1>hello!!!!!!!!!</h1> urls.py from django.urls import path from . import views urlpatterns = [ path('', views.home , name='home') ] views.py from django.http import request from django.shortcuts import render def home(requests): return render(request , 'home.html') setting.py DIRS': [os.path.join(BASE_DIR,'templates')], -
maximum recursion depth exceeded while calling a Python object error for property of a model
There is a problem with my project . I have a total price in my model and its going to sum all the products inside toyr cart and here is the property for model : @property def total(self): total = sum( i.price() for i in self.order_item.all()) if self.discount: discount_price = (self.discount / 100) * total return int(total - discount_price) return self.total self.discount is the discount of the order if it had and self.order_item is the related name for the items inside the order. so the problem is when i try to get the total from this model , it give me an error : maximum recursion depth exceeded while calling a Python object And my code to get the total from the model is : i = order_id amount = get_object_or_404(Order , id = i) Also i get the order_id from the url ! So what os wrong here . Hepl me please . -
Where to write server code for stripe payment?
I am working on React JS to implement stripe payment gateway. I am using Django as a backend Server. In stripe documentation. https://stripe.com/docs/checkout/integration-builder?server=python there is following code given for implementation code for react App.js import React, { useState, useEffect } from "react"; import "./App.css"; const ProductDisplay = () => ( <section> <div className="product"> <img src="https://i.imgur.com/EHyR2nP.png" alt="The cover of Stubborn Attachments" /> <div className="description"> <h3>Stubborn Attachments</h3> <h5>$20.00</h5> </div> </div> <form action="/create-checkout-session" method="POST"> <button type="submit"> Checkout </button> </form> </section> ); const Message = ({ message }) => ( <section> <p>{message}</p> </section> ); export default function App() { const [message, setMessage] = useState(""); useEffect(() => { // Check to see if this is a redirect back from Checkout const query = new URLSearchParams(window.location.search); if (query.get("success")) { setMessage("Order placed! You will receive an email confirmation."); } if (query.get("canceled")) { setMessage( "Order canceled -- continue to shop around and checkout when you're ready." ); } }, []); return message ? ( <Message message={message} /> ) : ( <ProductDisplay /> ); } code for python server.py #! /usr/bin/env python3.6 """ server.py Stripe Sample. Python 3.6 or newer required. """ import os from flask import Flask, redirect, request import stripe # This is your real test secret … -
JavaScript addEventListner Django question
I have a Django website that has a Form made up of multiple fields. Within this form, I am adding two new fields that I like to be able to keep adding values to which get submitted to the database. The primary form is used to populate a city name, address, etc. the new fields are used to populate event names and dates. For example, I add Machester as the city and then I'd like to add as many events to Manchester as I like. At the moment I have a JavaScript addEventListener setup for the submit button of the primary form which will POST all fo the fields i specify, but this refreshes the page everytime i SUBMIT I need to keep the city name field populated so that each event added will contain the city name and the additional event name and event date fields. Ultimately I want a table with City, EventName and EventDate and a table with the city details. So im wondering how i do this with JavaScript to only submit the city, event name and event date? I tried to create a new form within a form and reference that with a different js … -
unexpected password field in django rest framework
I'm creating a registration system with django REST framework so i can use it with React js. Here is my serializer: from rest_framework import serializers from backApp.models import Client class RegistrationSerializer(serializers.ModelSerializer): password2 = serializers.CharField(style={'input_type': 'password'}, write_only=True) class Meta: model = Client fields = ['username', 'email', 'password', 'password2'] extra_kwargs = { 'password': {'write_only': True} } def save(self): client = Client( email = self.validated_data['email'], username = self.validated_data['username'], ) password = self.validated_data['password'] password2 = self.validated_data['password2'] if password != password2: raise serializers.ValidationError({'password': 'Passwords must match'}) client.set_password(password) client.save() return client and here is my views.py file: from rest_framework import status from rest_framework.response import Response from rest_framework.decorators import api_view, permission_classes from rest_framework import permissions from authentication.api.serializers import RegistrationSerializer @api_view(['POST',]) @permission_classes((permissions.AllowAny,)) def registration_view(request): if request.method == "POST": serializer = RegistrationSerializer(data=request.data) data = {} if serializer.is_valid(): client = serializer.save() data['response'] = "successfully registred!" data['email'] = client.email data['username'] = client.username else: data = serializer.errors return Response(data) whenever i make a POST request with POSTMAN (look at the image ) I get the following error: TypeError: Client() got an unexpected keyword argument 'password2' How can i fix this please ? thanks in advance -
Creating two objects inside is_valid not working django
I have this HTML <input type="text" name="maca-fee"> <input type="text" name="maca-name"> <input type="text" name="maca-percentage"> <input type="text" name="maca-fee"> <input type="text" name="maca-name"> <input type="text" name="maca-percentage"> if maca.is_valid(): for i in range(len(list(request.POST.getlist("maca-fee")))): maca_object= maca.save(commit=False) maca_object.name = request.POST.getlist("maca-name")[i] maca_object.fee = request.POST.getlist("maca-fee")[i] maca_object.percentage_coverage = request.POST.getlist("maca-percentage")[i] maca_object.save() return redirect("maca:maca") The range(len(list(request.POST.getlist("maca-fee")))) == (0, 2) I'm trying to create two objects in database within the same form. Can someone help me? -
Form create and update related record
I have just started learning django, so I hope for your help. The second day I struggle with the problem. I want to create a form on the card page for creating and updating records collection. has made it possible to create, but the record cannot be updated in any way. code in model class Card(models.Model): id = models.CharField(max_length=256, primary_key=True) oracle_id = models.CharField(max_length=256) name = models.CharField(max_length=256) class Collection(models.Model): card = models.ForeignKey('Card', on_delete=models.CASCADE) owner = models.ForeignKey(User, verbose_name='User', on_delete=models.CASCADE) count = models.IntegerField() foil = models.BooleanField() class Meta: unique_together = [['card','owner', 'foil']] code in forms class CollectionAddForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class Meta: model = Collection fields = '__all__' # [ # 'count', # 'foil', # 'card', # 'owner', # ] widgets = {'card': forms.HiddenInput(), 'owner': forms.HiddenInput()} code in views class CardDetailView( FormMixin, DataMixin, generic.DetailView): model = Card template_name = 'catalog/card_detail.html' form_class = CollectionAddForm def get_context_data(self, **kwargs): context = super(CardDetailView, self).get_context_data(**kwargs) # Количество записей в колекции if self.request.user: collectionsFoil = Collection.objects.filter(card=self.object.pk, owner=self.request.user, foil=True) if collectionsFoil: context['collectionsFoil'] = Collection.objects.get(card=self.object.pk, owner=self.request.user, foil=True).id coolectObj = get_object_or_404(Collection, id=context['collectionsFoil']) context['collection_non_foil'] = CollectionAddForm(instance=coolectObj) else: context['collection_non_foil'] = CollectionAddForm(initial={ 'card': self.object.pk, 'owner': self.request.user, 'foil': True }) collectionsNotFoil = Collection.objects.filter(card=self.object.pk, owner=self.request.user, foil=False) if collectionsNotFoil: context['collectionsNotFoil'] = Collection.objects.get(card=self.object.pk, owner=self.request.user, foil=False).id coolectObj … -
image url redirect Django
Is there any way of redirecting an image's URL via views, so that Django isn't having to serve the image directly? The background to my questions has to do with image tracking, which for obvious reasons requires a trip to the Django server. For example, I have a webpage with, say, <img src="https://mydjangoserver.com/image-url/image.jpg"> Which is passed to views at which point the src url is redirected to, say, https://my-nginx-server.com/image.jpg and the image is then loaded within the original html page. I've seen code for forcing a file download using X-Accel-Redirect, but I cannot get it to work. Here is a view that I've been playing around with, but without success: def image_url(request): file_name = 'image.jpg' path_to_file = 'https://my-nginx-server.com/' response = HttpResponse(content_type="image/jpg") response['Content-Disposition'] = f'inline; filename={smart_str(file_name)}' % response['X-Accel-Redirect'] = smart_str(path_to_file) return response Any advice on how to redirect the images url would be very much appreciated. -
My current session_key is getting changed when spotify after authentication redirecting me back to homepage, how to retain same session_key?
I am using Django-rest-framework with React.JS hooks and what I am doing is creating a room with a session_key(suppose 'A') and then room has got created then spotify OAuth page pops up and as soon as i authenticate myself spotify redirects me back to homepage but with different session_key(suppose 'B' which i don't want it to be changed) and room has been created successfully but what i want is that spotify retains that same session_key('A') after redirecting and same room details should be shown after redirecting not the homepage.Please Help me guys. You can check all my files on this github link: enter link description here You can see these images that how session_key is changing given below-: enter image description here enter image description here enter image description here enter image description here enter image description here -
Vue axios not sending headers to server (django simplejwt)
It works well in postman. But I have this error when I do a axios request from Vue. : 'Authentication credentials were not provided.' If I write some custom header in postman, I can see it in request.headers. But there is no header infomation in it if I construct headers in axios. component.vue test_auth: function(){ var accessToken = this.$store.state.accessToken; console.log(accessToken); axios.get('http://django:8000/api/uvs/',{headers:{ 'Authorization':`Bearer ${accessToken}`, }} ) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error.response.data); }); }, and my server settings CORS_ALLOWED_ORIGINS = [ "http://django:8080", "http://django", "http://127.0.0.1", "http://vue:8080", "http://vue", ] CORS_ALLOW_ALL_ORIGINS = True CORS_ALLOW_CREDENTIALS = True REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ], 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ) } SIMPLE_JWT = { 'AUTH_HEADER_TYPES': ('Bearer',), } and views.py class UserSerializer(serializers.Serializer): class Meta: model = User fields = ('id', 'username', 'email', 'is_staff') class UserViewSet(viewsets.ModelViewSet): serializer_class = UserSerializer queryset = User.objects.all() permission_classes = [IsAuthenticated] -
django :Where can I put server side code django
I could not really explain it in the title of this question . I need to get the profile image of a user in django allauth. In this question : how to display image from google account: django-allauth , a answer was to use user.socialaccount_set.filter(provider='google')[0].extra_data['picture'] in the server side . Where is server side ? -
DataError at /freshleadaction value too long for type character varying(20)
I am working on a django web app. everything is working fine on my local machine and then pushed the code live on Heroku. but it doesn't work on the live server. it gives the following error when I try to post a .csv file: DataError at /freshleadaction value too long for type character varying(20) I have PostgreSQL database integrated. I deleted the migrations and then migrated the whole schema again. I think the problem is either PostgreSQL or heroku? I have two models which are as follows: class fresh_leads_model(models.Model): fname = models.CharField(max_length=250) lname = models.CharField(max_length=250) street_number = models.CharField(max_length=250) street_name = models.CharField(max_length=250) state = models.CharField(max_length=250) zip_code = models.CharField(max_length=250) bedrooms = models.CharField(max_length=250) legal_description = models.CharField(max_length=250) sq_ft = models.CharField(max_length=250) address = models.CharField(max_length=250) orign_ln_amt = models.CharField(max_length=250) prop_value = models.CharField(max_length=250) equity = models.CharField(max_length=250) email = models.CharField(max_length=250) cell = models.CharField(max_length=250) submitted_date = models.DateField(auto_now_add=True) updated_date = models.DateField(auto_now_add=True) deleted_date = models.DateField(auto_now_add=True) class cash_buyer_model(models.Model): fname = models.CharField(max_length=255) lname = models.CharField(max_length=255) email = models.CharField(max_length=255) city = models.CharField(max_length=255) state = models.CharField(max_length=255) submitted_date = models.DateField(auto_now_add=True) updated_date = models.DateField(auto_now_add=True) deleted_date = models.DateField(auto_now_add=True) my views.py function: def upload_fresh_leads(request): get_type = request.GET['type'] lst = [] if request.method == 'POST': leads = Fresh_leads_Form(request.POST, request.FILES) data = request.FILES.getlist('csv') # data = Fresh_leads_Form(request.FILES) # csv_file = request.GET['csv'] …