Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
How to change the content of navbar after user registration in django
I want to change the content of my django home page from Login,Register to Logout when the user gets redirected to the home page after successful registration. I was able to achieve the following change when the user logs in by using the user.is_authenticated but unable to do the same when user registers and gets redirected without the need to log in. views.py: from django.shortcuts import render,redirect from django.contrib import messages from django.contrib.auth.decorators import login_required from .forms import UserRegisterForm def register(request): if(request.method=='POST'): form=UserRegisterForm(request.POST) if(form.is_valid()): form.save() username=form.cleaned_data.get('username') messages.success(request,f'Account created for {username} , you can now login') return redirect('blog-home') else: form=UserRegisterForm() return render(request,'users/register.html', {'form':form}) @login_required def profile(request): return render(request,'users/profile.html') home.html: {% load static %} <!DOCTYPE html> <html> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link rel="stylesheet" type="text/css" href="{% static 'blog/main.css' %}"> {% if title %} <title>Django Blog - {{ title }}</title> {% else %} <title>Django Blog</title> {% endif %} </head> <body> <header class="site-header"> <nav class="navbar navbar-expand-md navbar-dark bg-steel fixed-top"> <div class="container"> <a class="navbar-brand mr-4" href="{% url 'blog-home' %}">Django Blog</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggle" aria-controls="navbarToggle" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarToggle"> <div class="navbar-nav … -
How do i test for authentication in django
def authenticate(username=None, password=None): try: user = User.objects.get(email=username) if user.check_password(raw_password=password): return user return None except User.DoesNotExist: return None def authenticate(username=None, password=None): try: user = User.objects.get(email=username) if user.check_password(raw_password=password): return user return None except User.DoesNotExist: return None -
RelatedObjectDoesNotExist at /profile/ User has no customer
I have created the user Customer model. I migrated the model to syn with the database. However I am getting an error of User has no customer. click to profile page through http://127.0.0.1:8000/profile But after adding profile code for every user I am getting the below error Here is my code from django.db import models from django.contrib.auth.models import User # Create your models here. class Customer(models.Model): user = models.OneToOneField(User, null=True, on_delete=models.CASCADE) full_name = models.CharField(max_length=200, null=True) address = models.CharField(max_length=100, null=True, blank=True) def __str__(self): return self.full_name class CustomerProfileView(TemplateView): template_name = "app/CustomerProfile.html" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) customer = self.request.user.customer context['customer'] = customer orders = Order.objects.filter(cart__customer=customer).order_by("-id") context["orders"] = orders return context -
Pass kwargs to model save method
I am stuck in weird situation i have this kwarg['device_id'] which i need to access in my save method , it there any way i can achieve this, the reason i want to avoid overriding update method because i have kept my external API calls in model save method , help is needed thanks def save(self, *args, **kwargs): device_uid = (getattr(self,'device_id')).upper() device_name = getattr(self,'device_name') device_profile_name = getattr(self,'device_profile_name') app_id = getattr(self,'device_profile_name') # check whether model is getting saved or updated if self._state.adding: device_status, error_remarks = add_device(app_id,device_profile_name,device_uid,device_name) else: print(device_name,device_uid,device_profile_name,app_id) device_status, error_remarks = update_device(app_id,device_profile_name,device_uid,device_name) <<-- API call if device_status == 200 : super(DeviceSubscription, self).save(*args, **kwargs) schedulars.check_device() else: print(error_remarks) raise RequestException('err:{}'.format(er #update device @api_view(['PUT']) def update_device(request,*args,**kwargs): if kwargs['device_id']: try: device_ins = DeviceSubscription.objects.get(device_id = kwargs['device_id']) serialized_data = DeviceAdditionSerializer(device_ins,request.data,partial = True) if serialized_data.is_valid(raise_exception=True): serialized_data.save() return Response({'data':serialized_data.data},status=200) except Exception as e: return Response({'err':str(e)},status=400) else: return Response({'status':'bad request'},status=400) -
Django rest framework serializer Got AttributeError when attempting to get a value for field `field` on serializer. Try to nest serializers
AttributeError: Got AttributeError when attempting to get a value for field vesting_choice_id on serializer VestingLocationRateSerializer. The serializer field might be named incorrectly and not match any attribute or key on the QuerySet instance. Original exception text was: 'QuerySet' object has no attribute 'vesting_choice_id'. Model class VestingChoice(models.Model): id = UUIDField(primary_key=True, default=uuid.uuid4, editable=False) participant = ForeignKey('Participant', on_delete=CASCADE, related_name="participants_id") vesting = ForeignKey('Vesting', on_delete=CASCADE, related_name="vestings") class VestingLocationRate(models.Model): id = UUIDField(primary_key=True, default=uuid.uuid4, editable=False) vesting_choice_id = ForeignKey('VestingChoice', on_delete=CASCADE, related_name="vesting_choice") country_id = ForeignKey(Country, on_delete=CASCADE, related_name="country_id") Serializers class VestingChoiceSerializer(serializers.ModelSerializer): class Meta: model = VestingChoice fields = "__all__" class VestingLocationRateSerializer(serializers.ModelSerializer): vesting_choice_id = VestingChoiceSerializer(many = False) country_id = CountrySerializer(many = False) class Meta: model = VestingLocationRate fields = "__all__" -
Add multiple "Place of Interest" model to a "Tour" model in Django and allow one "Place of Interest" to be in multiple "Tour" model
What is the best way to represent this situation: I want to create a tour app that consists of "Tour" and "Place of Interest" The "Tour" model would have multiple "Place of Interests". One "Place of Interest" should be able to be added to multiple "Tour". I can't wrap my head around this. So far, I can only add one "Place of Interest" to one "Tour" Here's my model: class PlaceOfInterest(models.Model): name = models.CharField(max_length=255) tour = models.ForeignKey("Tour", on_delete=models.CASCADE, related_name="tours", blank=True, null=True) class Tour(models.Model): title = models.CharField(max_length=255) Any pointer would be greatly appreciated. Thanks in advanced. -
Script returns an empty list data with 200 response, fetching data from django backend
I am working on an autocomplete app that I want users be able to make address search through the backend of Django but somehow the Api doesn't fetch data through the script, why is the payload show any data in the log console but rather an empty list?, I have tried calling the data from the browser as in example http://127.0.0.1:8000/search/?address=val , which fetches the json data response with a payload of data of addresses that match my search, but when i pass the url in my javescript it returns an empty data list with a 200 response. My experience in Js is mediocre, since I'm a novice. <script> new Autocomplete('#autocomplete',{ search : input => { console.log(input) const url = "/search/?address=${input}" return new Promise(resolve => { fetch(url) .then( (response) => response.json()) .then( data => { console.log(data) resolve(data.data) }) }) }, onSubmit : result => { console.log(result) window.open('/search/?address=${result}') } }) </script> my view for search def search_address(request): address = request.GET.get('address') playload = [] if address: fake_address_objs = Address.objects.filter(address__icontains=address) for fake_address_obj in fake_address_objs: playload.append(fake_address_obj.address) return JsonResponse({'status':200 , 'data': playload }) Returned empty data in the console log Returned data in browser using http://127.0.0.1:8000/search/?address=v -
DRF - lack of JWT when creating user instance
I'm struggling with jwt. When I create user's instance, there is not jwt. When I try to obtain jwt with registered credentials I receive info that provided credentials are not correct. It works fine when I create superuser via cmd. serializers: from rest_framework import serializers from django.contrib.auth.models import User from rest_framework import serializers class UserSerializer(serializers.ModelSerializer): class Meta: model = User write_only_fields = "password" read_only_fields = ('id',) fields = ["email", "password", "first_name", "last_name"] for field in fields: extra_kwargs = {field: {'required': True,'allow_blank': False}} def create(self, validated_data): validated_data["username"] = f'{validated_data["first_name"]}_{validated_data["last_name"]}_{User.objects.count()}' return User.objects.create(**validated_data) signals: from django.db.models.signals import post_save from django.dispatch import receiver from django.contrib.auth.models import User from rest_framework.authtoken.models import Token @receiver(post_save, sender=User) def create_auth_token(sender, instance=None, created=False, **kwargs): if created: Token.objects.create(user=instance) views class CreateUserView(CreateAPIView, GenericViewSet): model = User permission_classes = [ permissions.AllowAny ] serializer_class = UserSerializer response = {} def create(self, request): validation_selializer = UserRegistrationSerializer(data=request.data) if validation_selializer.is_valid(): final_selializer = self.get_serializer(data=validation_selializer.data) if final_selializer.is_valid(): self.response = { "info":{ "status":"created", "email":validation_selializer.data["email"] } } return Response(self.response, status=status.HTTP_200_OK) self.response = validation_selializer.errors return Response(self.response, status=status.HTTP_400_BAD_REQUEST) -
Django Form Dropdown List Won't Display
I want to create a dropdown list in a form. I followed this approach here. If I use {{ form.as_p }}, the dropdown list renders just fine. But rendering the form using as_p looks terrible. Instead, I loop through the form fields and access their parameters so I can stylize the inputs. I try to catch the field of the dropdown list using an if-statement with condition field.widget.input_type == "select". When the page renders, I should see "This is where my dropdown goes" where my dropdown list field is supposed to be. But that doesn't happen, the field gets rendered as a text input like every other field, so my if-statement is not working. I debugged my view function and confirmed that the field corresponding to the dropdown list does have parameter .widget.input_type == "select". What am I doing wrong? <form action="{% url 'myapp:newrecord' %}" method='post'> {% csrf_token %} {% for field in form %} <div class="form-group row"> {% if field.widget.input_type == "select" %} <p>This is where my dropdown goes.</p> {% else %} <label for="{{ field.id_for_label }}" class="col-sm-2 col-form-label">{{ field.label }}</label> <div class="col-sm-10"> <input type="text" name="{{ field.html_name }}" class="form-control" id="{{ field.id_for_label }}" placeholder="{{ field.label }}" required> </div> {% endif %} … -
Can we combine multiple exists() queryset API calls into a single DB call using annotate?
I have a decorator.py function to check if a logged user has permission to access a view. def allow_only_admins_authors_coauthors_reviewers_specialists(view_func): def wrapper_func(request, *args, **kwargs): email_of_logged_user = request.user.email book_id = kwargs['pk'] # Get the book id if (request.user.is_admin or \ (Coauthors.objects.filter(paper=book_id, email=request.user).exists()) or \ (Book.objects.filter(Q(id=book_id, author=request.user) | Q(id=book_id, author__email__in=request.user.get_secondary_emails_flat_list)).exists()) or \ (Token.objects.filter( Q(book=book_id, email=email_of_logged_user) | Q(book=book_id, email_which_was_actually_used_to_retrive_token__emails__icontains = email_of_logged_user) # 'email_which_was_actually_used_to_retrive_token' contains the actual email which was used by the reviewer to retrieve the token. Its different than the email to which the token was originally sent. ).exists() # Sometimes, the token might be deleted. In such case, system shall check if the logged user is the reviewer within the Review model. ) or \ (Review.objects.filter(paper=book_id, user__email = email_of_logged_user).exists()) or \ (SpecialistAssignment.objects.filter(raw_book=book_id, user=request.user).exists())): return view_func(request, *args, **kwargs) else: return HttpResponse('You are not authorised to view this page!') return wrapper_func This function would make multiple DB calls due to multiple the exists() API checks. Is there any way we can combine these multiple exists() into a single DB query using annotate? Secondly, is this approach faster than using django-rules? -
Django can't find my DetailView with Primary Key
I'm trying to make a simple page with Django where posts are being displayed using primary keys. However, the DetailView page with my posts can't be displayed. This is my model: class Post(models.Model): author = models.CharField(max_length=100) title = models.CharField(max_length=100) posted_date = timezone.now() text = models.TextField() def get_absolute_url(self): return reverse("postdetail", kwargs={"pk": self.pk}) def __str__(self): return self.title and here is my url pattern list: urlpatterns = [ url(r'^posts/(?P<pk>\d+)$', views.PostDetail.as_view(), name="postdetail"), url(r'^$', views.index, name="index"), url(r'^thanks/$', views.Thanks.as_view(), name="thanks"), url(r'^postlist/$', views.PostList.as_view(), name="postlist"), ] Here is the DetailView: class PostDetail(DetailView): context_object_name = 'post_details' model = Post I can't see where I might have a mistake. I have a ListView that shows my posts including the primary keys. But when I try to open the URL http://127.0.0.1:8000/posts/1/ I get: `Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/posts/1/ Using the URLconf defined in myproj.urls, Django tried these URL patterns, in this order: admin/ ^posts/(?P<pk>\d+)$ [name='postdetail'] ^$ [name='index'] ^thanks/$ [name='thanks'] ^postlist/$ [name='postlist'] The current path, posts/1/, didn’t match any of these. Do you have a clue why the URL cannot be found? Thank you very much.` -
Getting an error of "<Team: jaja>" needs to have a value for field "id" before this many-to-many relationship can be used
I'm trying to add team to the database but i get this error. Took a look at similar questions but none of them solved my issue. (I am new with Django) My code looks like: forms.py from django.forms import ModelForm from .models import Team class TeamForm(ModelForm): class Meta: model = Team fields = ['title', 'team_country', 'team_logo'] def __init__(self, *args, **kwargs): super(TeamForm, self).__init__(*args, **kwargs) for name, field in self.fields.items(): field.widget.attrs.update({'class': 'input'}) models.py from django.db import models # Create your models here. from django.contrib.auth.models import User from django_countries.fields import CountryField from .validators import validate_file_size class Team(models.Model): # # Status ACTIVE = 'active' DELETED = 'deleted' CHOICES_STATUS = ( (ACTIVE, 'Active'), (DELETED, 'Deleted') ) # # Fields title = models.CharField(max_length=255) team_country = CountryField(blank=True, null=True) team_logo = models.ImageField( null=True, blank=True, upload_to='logos/', default="logos/logo.png", validators=[validate_file_size]) members = models.ManyToManyField(User, related_name='teams') created_by = models.ForeignKey(User, related_name='created_teams', on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) status = models.CharField(max_length=10, choices=CHOICES_STATUS, default=ACTIVE) class Meta: ordering = ['title'] def __str__(self): return self.title views.py from django.shortcuts import render from django.contrib import messages from django.contrib.auth.decorators import login_required from django.shortcuts import render, redirect, get_object_or_404 from .models import Team @login_required def add(request): profile = request.user.profile form = TeamForm() if request.method == 'POST': form = TeamForm(request.POST, request.FILES) if form.is_valid(): team = form.save(commit=False) … -
how can I auto scroll down - chat app with django
hello I want to auto scrolldown because whenever I refresh the page I see always the top of conversations I mean the start-conversation , this is my code <div class="card-body height3 scrollbar" style="margin-bottom: -60px;" id="card-body"> <ul class="chat-list" id="chat-list-id"> <p class="start-conversation">&nbsp;</p> {% for chat in chats %} {% if chat.from_user == user.username %} <li class="out"> <div class="chat-img"> <img alt="avatar" style="height: 48px;width: 48px;" src="{{here.image.url}}"> </div> <div class="chat-body"> <div class="chat-message"> <h5>Me</h5> <p>{{chat.messag_body}}</p> </div> </div> </li> {% else %} <li class="in"> <div class="chat-img"> <img alt="avatar" src="{{here.image.url}}"> </div> <div class="chat-body"> <div class="chat-message"> <h5>{{ chat.from_user }}</h5> <p>{{ chat.messag_body }}</p> </div> </div> </li> {% endif %} {%endfor%} </ul> </div> -
reading text file from user pyttsx3 python
I have a program that read text from the keyboard and convert that text into an audio, also the program could take a text file (docx, pdf, txt, etc...) from user and convert it to audio. I am having hard time to convert the file. every time I run the code the [Errno 2] No such file or directory: 'file_name. (I am using python, Django, and pyttsx3) def convert_Two(request): #taking iput from user value = request.GET['file'] with open(value, 'r') as file: data = file.readlines().replace('\n', '') obj = pyttsx3.init() obj.say(data) obj.runAndWait() return redirect('/') -
Displaying names of the DB tables that contain specific data
I was able to get the names of the tables of DB with specific data in Python like this: r = list(conn.cursor().execute('''select m.name from sqlite_master m where m.type = 'table' and exists (select 1 from pragma_table_info(m.name) m1 where m1.name = 'customer_id')''')) print('Names of the tables that contain customer data:\n','\n'.join(map(str, r))) The output is: "actor" and "film actor" Is there any way to get the same output in Django website? I just can't think of any way to do that. DB that I'm using is Sakila. I've generated model objects for every table already. -
How to solve the No module named bootstrap_date_picker_plus error?
I am using Django 3.2.3 and I would like in my app to use date picker using the package bootstrap_datepicker_plus. I have installed it and added it following the steps in the link https://pypi.org/project/django-bootstrap-datepicker-plus/. However, when I run the app, I am getting the error ModuleNotFoundError: No module named 'bootstrap_datepicker_plus. When I checked in the installed packages, I noticed that the bootstrap_date_picker_plus package is installed as it is shown in the attached image -
Django S3: The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256
I'm following a course and I believe I'm doing everything the guy says step by step, however, I'm running into a problem where I cant output images to my django website from Amazon buckets. i get <Error> <Code>InvalidRequest</Code> <Message>The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.</Message> <RequestId>FBT5M3QQ69AF3QNB</RequestId> <HostId>L8MYNGNFtHoMzCIn8zQZLaIIzrtWpSE31tG4zeIr1o/XqdudSvvPhV9fUEBB5EiNvuWHtM+WqQc=</HostId> </Error> These are my setting.py STATIC_URL = '/static/' MEDIA_URL = '/images/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ] MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images') # user uplaoded content STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' AWS_ACCESS_KEY_ID = '**********' AWS_SECRET_ACCESS_KEY = '********' AWS_STORAGE_BUCKET_NAME = 'mybucket-name' The files are getting uploaded to the bucket successfully, but they won't show on the web page... -
Env vars and Docker differences between dev, staging, and prod
Although my specific example involves Django, Docker, and Heroku, I believe these are pretty general testing/QA questions. I have a dockerized Django app tested in dev with Selenium confirming that my static files are being served correctly from my local folder (EXPECTED_ROOT = '/staticfiles/'). This app is deployed to Heroku and I can see (visually and in the dev tools) that the static files are being pulled in from CloudFront correctly as well. I want to formalize this with the same test I'm using in dev. My first question is related to if/how environment variables are used for tests: Do I add for example EXPECTED_ROOT = 'https://<somehash>.cloudfront.net/' as an env var to Heroku and use it in the Selenium test? Also, to run this test in staging I would need to install Firefox in my Docker image like I do in dev. Perhaps this is ok in staging, but in prod I believe I should be aiming for the the smallest image possible. So the question is about differences between staging and prod: Do I keep Firefox in my staging image, run the tests, and then send to production a replica of that Dockerfile, but now without firefox? Any help … -
Problem when trying to import data from a django directory
I started a application in django with discord.py My modules for discord.py is in same directory where is django application started. Looks like this: My problem is when I want to import a botlogic model, get this error ModuleNotFoundError: No module named 'bot.botlogic'; 'bot' is not a package I've tried every possible way ... and I'm still getting this error How should I proceed? -
Different query results for local server and production server
Without changing the code and updating, the display order of pictures on my production server(django,postgresql,bootstrap,nginx,uwsgi) has changed(see the picture). Before/now I can't reproduce this problem on my local server with same backup/code... In Django ORM I have this result: local: Car.objects.filter(model=1) <QuerySet [<CarImage: 1>, <CarImage: 2>, <CarImage: 3>]> production: Car.objects.filter(model=1) <QuerySet [<CarImage: 3>, <CarImage: 2>, <CarImage: 1>]> Reboot nginx/postgresql didn't help. What could have happened and how to fix it? -
How to add data from my local postgresql database on heroku's postgresql database?
I have a Django project on Heroku. It renders templates, but without any data(that I get from my local postgre database). How can I import data on Heroku database from my local db? -
retrieve data from manytomany field in the sequence of it was saved django
views.py ids when its being saved [19, 18, 20] inv.products.set(pd) ids when its retrieved [18, 19, 20] products = obj.products.all() I want it to be retrieved the objects in the sequence of it was saved -
Django: Foreign Key Error when extending the default USER scheme
I am currently struggling with the extension of the User model with the relation OneToOneField. I have the following model: from django.db import models from django.contrib.auth.models import User from django.dispatch import receiver from django.db.models.signals import post_save # Create your models here. class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True) qualified_name = models.CharField(max_length=50, blank=True) phone_number = models.CharField(max_length=17, blank=True) buyout = models.BooleanField(default=False) @receiver(post_save, sender=User) def create_user_profile(sender, instance, created, **kwargs): if created: Profile.objects.create(user=instance) @receiver(post_save, sender=User) def save_user_profile(sender, instance, **kwargs): instance.profile.save() The following forms: from django import forms from django.contrib.auth.models import User from django.contrib.auth.forms import UserCreationForm from django.core.validators import RegexValidator, ValidationError from .models import Profile class UserRegisterForm(UserCreationForm): email = forms.EmailField(widget=forms.EmailInput( attrs={'class': 'form-control inp-xlf', 'id': 'email', 'placeholder': 'name@example.com'}), required=True) password1 = forms.CharField(widget=forms.PasswordInput, required=False) password2 = forms.CharField(widget=forms.PasswordInput, required=False) def clean(self): cd = self.cleaned_data email_cleaned = cd.get('email') virtual_passwd = User.objects.make_random_password() cd.setdefault("password1", virtual_passwd) cd.setdefault("password2", virtual_passwd) cd.setdefault('username', email_cleaned.split("@")[0]) return cd class Meta: model = User fields = ('email',) class ProfileRegisterForm(forms.ModelForm): qualified_name = forms.CharField(strip=True, widget=forms.TextInput( attrs={'class': 'form-control inp-xlf', 'id': 'name', 'placeholder': 'Enter your name...'})) phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits " "allowed.") phone_number = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control inp-xlf', 'id': 'phone', 'placeholder': '(+41) 254 48 95'}), validators=[phone_regex], max_length=17) # validators should be a … -
How to import an object of one app into another app in the same django project?
Codes are given below. users.model.py from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin from django.db import models from django.utils import timezone from django.utils.translation import gettext_lazy as _ from django.db import models # from django.contrib.auth.models import User from PIL import Image from .managers import CustomUserManager from django.contrib import admin from django.contrib.auth.models import AbstractUser from django.utils.translation import ugettext_lazy as _ class CustomUser(AbstractUser): username = None first_name = models.CharField('Name',max_length=200,unique=True) email = models.EmailField(_('email address'), unique=True) registration = models.IntegerField() USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = CustomUserManager() def __str__(self): return self.email class Profile(models.Model): user = models.OneToOneField(CustomUser, on_delete=models.CASCADE) image = models.ImageField(default='default.jpg', upload_to='profile_pics') blog.model.py from django.db import models from django.utils import timezone from django.urls import reverse from django.conf import settings from multiselectfield import MultiSelectField from django import forms from django.core.validators import MinValueValidator, MaxValueValidator from PIL import Image DAYS_OF_WEEK = [ (0, ' Monday'), (1, ' Tuesday'), (2, ' Wednesday'), (3, ' Thursday'), (4, ' Friday'), (5, ' Saturday'), (6, ' Sunday'), ] class PostManager(models.Manager): def like_toggle(self, user, post_obj): if user in post_obj.liked.all(): is_liked = False post_obj.liked.remove(user) else: is_liked = True post_obj.liked.add(user) return is_liked class Post(models.Model): author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE) title = models.CharField('Doctor\'s Name',max_length=100) content = models.CharField('Specialty',max_length=100) chamber = models.CharField('Chamber\'s Name',max_length=200) address = models.CharField('Address',max_length=100, blank=True) fees = models.IntegerField(default=0) days … -
Loginform object has no attribute get_user
I have multiuser app mith usertype a and b i am trying to create login form using class based views making my most of my logic lying in forms.py this how my code looks forms.py class UsertypeALogin(forms.Form): username = forms.CharField(required=True) password = forms.CharField(widget=forms.PasswordInput) def __init__(self, *args, **kwargs): self.request = kwargs.pop('request', None) super().__init__(*args, **kwargs) def clean(self): username = self.cleaned_data.get("username") password = self.cleaned_data.get("password") try: user = models.User.objects.get(username=username) if user.user_a: if user.check_password(password): return self.cleaned_data else: self.add_error("password", forms.ValidationError("Password is wrong.")) except models.User.DoesNotExist: self.add_error("email", forms.ValidationError("User does not exist.")) views.py class UsertypeaView(LoginView): template_name = 'login.html' form_class = UsertypeALogin success_url = reverse_lazy("dash") error trace This is the error i am getting Internal Server Error: /app/pm/signin/ Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view return self.dispatch(request, *args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/utils/decorators.py", line 43, in _wrapper return bound_method(*args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/views/decorators/debug.py", line 89, in sensitive_post_parameters_wrapper return view(request, *args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/utils/decorators.py", line 43, in _wrapper return bound_method(*args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/utils/decorators.py", line 130, in _wrapped_view response = view_func(request, *args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/utils/decorators.py", line 43, in _wrapper return bound_method(*args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func response = view_func(request, …