Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django RestFRamework filter a ManytoMany model field
In my django app i have these two models: class Device(models.Model): mac_id = models.CharField(max_length=400, primary_key=True, null=False) short_name = models.CharField(max_length=400, default='') ... class Anagrafica(models.Model): id = models.AutoField(primary_key=True) cod_imp = models.CharField(max_length=80, verbose_name="Codice impianto") rb_sel = models.ManyToManyField(Device) well i have to filter in my API using Django RestFramework the rb_sel field, so i try: in serialyzers.py: class RaspFilter(django_filters.FilterSet): rb_sel = django_filters.BaseInFilter( name ='rb_sel__short_name', lookup_type='in', ) class Meta: model = Anagrafica fields = ('cod_imp', 'rb_sel') class AnagraficaSerializer(serializers.ModelSerializer): owner = serializers.ReadOnlyField(source='owner.username') rb_list = DeviceSerializer(read_only=True, many=True) class Meta: model = Anagrafica fields = ['id', 'cod_imp', 'soc', 'soc_sigla', 'regione', 'prov', 'comune', 'cap', 'indirizzo', 'coordinate', 'notes', 'rb_list', 'owner'] filter_class = RaspFilter and in my views.py i add: filter_backends = [DjangoFilterBackend] filter_class = RaspFilter but when i try my api i get a 500 error: TypeError at /api/anagrafica/ init() got an unexpected keyword argument 'name' where i am wrong? how can i filter on my manytomany rb_list field? So many thanks in advance -
show related images to product in Django?
Hi Here I am trying to display all the images related to a particular product in a popup My problem is the When I upload a photo for one of This Objects, it display on a both of Object how can i filter them for to display on the relavent object? Photo 1 Popup Admin Panel my models.py class Portfolio_Detail(models.Model): title = models.CharField(max_length=50) image = models.ImageField(upload_to='Portfolio/') def __str__(self): return self.title class Portfolio_Image(models.Model): portfolio = models.ForeignKey(Portfolio_Detail, on_delete=models.CASCADE,related_name="portfolio") image = models.ImageField(upload_to='Portfolio_Image/') my views.py def home(request): portfolios = Portfolio_Detail.objects.all() portfolio_images = Portfolio_Image.objects.filter() context = { 'portfolios' : portfolios, 'portfolio_images' : portfolio_images, } return render(request, "index.html", context) My Template <!-- Portfolio Section Start --> <section class="portfolio-section sec-padding" id="portfolio"> <div class="container"> <div class="row"> <div class="section-title"> <h2>Recent Works</h2> </div> </div> <div class="row"> <!-- Portfolio Item1 Start --> {% for item in portfolios %} <div class="portfolio-item"> <div class="portfolio-item-thumbnail"> <img src="{{item.image.url}}" alt="portfolio item Thumb"> </div> <h3 class="portfolio-item-title">{{item.title}}</h3> <button type="button" class="btn view-project-btn">View Project</button> <div class="portfolio-item-details"> <div class="description"> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p> </div> <div class="general-info"> <ul> <li>Created : <span>4 dec 2020</span></li> <li>Technology : <span>Html</span></li> <li>Role : <span>Frontend</span></li> <li>View Online : <span><a href="#" target="_blank">www.domain.com</a></span></li> </ul> </div> </div> </div> <!-- Portfolio Item1 End --> {% endfor %} </div> … -
How to make a filtering in Django
I want to do a filtering in django and I want to do this with date_created from custumUser for my filter. I can show date_create using list_display to my admin panel, but I can't filter through it on the page. my models.py like that. class CustomUser(AbstractBaseUser): email = models.EmailField(max_length=200, unique=True, verbose_name='Email') username = models.CharField(max_length=150, verbose_name='Username') first_name = models.CharField(max_length=150, verbose_name='First Name') last_name = models.CharField(max_length=150, verbose_name='Last Name') is_active = models.BooleanField(default=True) is_admin = models.BooleanField(default=False) is_staff = models.BooleanField(default=False) is_superuser = models.BooleanField(default=False) date_created = models.DateTimeField(auto_now=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username'] objects = UserManager() def get_full_name(self): # The user is identified by their email address return self.email def get_short_name(self): # The user is identified by their email address return self.email def __str__(self): return self.email # this methods are require to login super user from admin panel def has_perm(self, perm, obj=None): return self.is_admin # this methods are require to login super user from admin panel def has_module_perms(self, app_label): return self.is_admin class Meta: verbose_name = ('user') verbose_name_plural = ('users') class EmailConfirmed(models.Model): user = models.OneToOneField(CustomUser, on_delete=models.CASCADE) activation_key = models.CharField(max_length=500) email_confirmed = models.BooleanField(default=False) date_confirmed = models.DateTimeField(auto_now=True) def __str__(self): return self.user.email class Meta: verbose_name_plural = 'User Email Confirmed' @receiver(post_save, sender=CustomUser) def create_user_email_confirmation(sender, instance, created, **kwargs): if created: dt = datetime.now().strftime('%Y-%m-%d … -
i can't make django to show pictures in my django project project is there any solution for it?
i can't make django to show pictures in my blog project hello, i am currently workin on a django blog project i have a really different problem i want to store each blogs post on a .pdf file and store it on a file in server the problem i have is that when i add the .pdf file and when django reads the file it just read the text and display the text as i want but it is unable to show pictures in the page. if there is a solution for this problem could you please share it and for that thank you a million times. -
Manager isn't accessible via class instance
I've recently faced Manager isn't accessible via model instance this error. By reading the Django doc I was able to resolve it. https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects This reason mentioned in the Django documentation is: Managers are accessible only via model classes, rather than from model instances, to enforce a separation between “table-level” operations and “record-level” operations. I can't seem to understand the above statement. Can anyone explain it in simple words -
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
i'm making a django ecommerce site from a this youtube ecommerce tutorial.i have created a function for the delete from cart but when i press the delete button, i get this message TypeError at /cart/delete/ int() argument must be a string, a bytes-like object or a real number, not 'NoneType' here is the function def cart_delete(request): cart = Cart(request) if request.POST.get('action') == 'post': product_id = int(request.POST.get('productid')) cart.delete(product=product_id) response = JsonResponse({'success':True}) return response > TypeError at /cart/delete/ int() argument must be a string, a > bytes-like object or a real number, not 'NoneType' Request > Method: POST Request URL: http://127.0.0.1:8000/cart/delete/ Django > Version: 3.2.8 Exception Type: TypeError Exception Value: int() > argument must be a string, a bytes-like object or a real number, not > 'NoneType' Exception > Location: C:\Users\DELL\Desktop\ecommerce\cart\views.py, line 30, in > cart_delete Python > Executable: C:\Users\DELL\Desktop\ecommerce\venv\scripts\python.exe > Python Version: 3.10.0 delete function def delete(self, product): product_id = str(product) if product_id in self.cart: del self.cart[product_id] self.session.modified = True my ajax script <script> $(document).on('click', '#delete-button', function(e){ e.preventDefault(); console.log($('#select option:selected').text()) $.ajax({ type:'POST', url:'{% url "cart:cart_delete" %}', data:{ productid: $('#add-button').val(), csrfmiddlewaretoken:"{{csrf_token}}", productqty: $('#select option:selected').text(), action: 'post' }, success: function (json){ }, error: function (xhr, errmsg, err){} }) }) </script> some please help. -
foreach queryselector in javascript
I hope you are doing well, I am working with django, problem is I have a list of items that contains a menuToggle my script code is like this <script> function menuToggle1(){ document.querySelectorAll('.menupost').forEach(function(element) { element.classList.toggle('active'); }); }; </script> so when I click on one of them , I see all the menu of all items. so I don't want to see all menutoggle when I click on just one of them.I think you understand my question, I hope you guys can help me. -
On click run query function script Django
In my Django project, on my HTML page, I have a script which runs Query depending on the other values ($("#id_report").val() values). Function runs 'on click'. Problem is, when I click on '#id_person' dropdown menu to select an option which I get from query, I run query again and my selection gets reset. <script> $("#id_person").click(function () { var value = $("#id_report").val(); var url = $("#PostForm").attr("data-person-url"); $.ajax({ url: url, data: { 'value': value, }, success: function (data) { $("#id_person").html(data); console.log(data); } }); }); </script> How can I run this only when I click on dropdown, not when I select (then it runs again because it's a click) -
I want to order my list by most liked content, for e.g. most liked thing shows on top and most disliked at bottom,, help me please
I want to order my list by most liked content, for e.g. most liked thing shows on top and most disliked at bottom,, help me please i'm using django 3 and in my DETAIL view i want to oder the queryset by likecount field. The main goal is to odering the post with mostlikes . Like, i want to show the most liked content on top. It's like todays top 10 content(mostliked). i have tried many ways but can't figure it out. I hope you guys can help me. ==MODEL== this is a model page class Post(models.Model): title = models.CharField(max_length=255) author = models.ForeignKey(User, on_delete=models.CASCADE) body = models.TextField() date = models.DateField(auto_now_add=True) class Content(models.Model): name = models.CharField(max_length=255) body = models.TextField() post = models.ForeignKey(Post, related_name="contents", on_delete=models.CASCADE) liked =models.ManyToManyField(User, default=None, blank=True, related_name='liked') ==VIEWS== this is a view page class Home(ListView): model = Post template_name = 'home.html' class Detail(DetailView): model = Post template_name = 'detailview.html' ordering = Content.objects.annotate(like_count=Count('liked')).order_by('-like_count') ==HOME.HTML== {% for item in object_list %} <br> <a href="{% url 'detail' item.pk %}"> {{item.title}} </a> <br> {{item.body}} <hr> {% endfor %} == I WANT TO SHOW 'ORDER BY - MOST LIKED' CONTENT ON THIS DETAIL PAGE ==DETAILVIEW.HTML== {% if not post.contents.all %} no contents yet {% … -
how to generate a custom id for specific type of users when the user signup in django?
models.py class CustomUser(AbstractUser): username = None email = models.EmailField(_('email address'), unique=True) mobileno = models.IntegerField(blank=True, null=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] customer = models.BooleanField(default=False) vendor = models.BooleanField(default=False) id = models.AutoField(primary_key=True, editable=False) userid= models.CharField(max_length=100, unique=True) objects = UserManager() def __str__(self): return self.email def save(self, *args, **kwargs): super().save(*args, **kwargs) if self.vendor == True and self.is_superuser == False: if not self.userid: self.userid = "VEN" + str(self.id + (10 ** 5)) # generating the uid and allocating the value self.userid.save() else: pass else: pass forms.py class CustomUserCreationForm(UserCreationForm): """ A Custom form for creating new users. """ class Meta: model = CustomUser fields = ['email','first_name','last_name','mobileno'] def save(self, commit=True): user = super().save(commit=False) user.customer = True if commit: user.save() return user """ For Vendor users forms""" class VendorCreationForm(UserCreationForm): class Meta: model = CustomUser fields = ['email','first_name','last_name','mobileno'] def save(self, commit=True): user = super().save(commit=False) user.vendor = True if commit: user.save() return user views.py #Vendor Signup def VendorSignup(request): vendorform = VendorCreationForm() if request.method == 'POST': vendorform = VendorCreationForm(request.POST) if vendorform.is_valid(): new_user = vendorform.save() new_user.is_active = False new_user.save() return redirect('login') else: vendorform = VendorCreationForm() return render(request, 'vendor/signup.html', {'vendorform': vendorform}) I want to generate a customID (that starts with VEND0001)for the vendor users only when (they're signup with vendorform) and shouldn't generated … -
Django AdminEmailHandler on daphne logs
I can use Django's AdminEmailHandler just fine for my API Errors. But I can not get it to work in my daphne. All I can do so far is showing my error logs in my console. I tried numerous attempts like: 'loggers': { 'daphne': { 'handlers': ['console', 'mail_admins'], }, } It did not work though. Basically, I want to get notified if my websockets and the process within produced errors -
How to store a list of keys of another model in a model in django?
Imagine that we have 2 tariffs and two entity classes: Person and Items. The first tariff contains several people and several objects, and people and objects are not related to each other. The second tariff also stores people and items, etc. How should I store this model? ManyToManyField creates its own object for each pair (Person, Item), isn't that optimal? I don't understand, is it really more efficient to store all kinds of pairs between two fields than to store two lists of keys? (I want to keep a list of Person keys and a list of Item keys.) How to store a list of keys of another model in a model in -
JavaScript function is not defined in Django
I have a small Django project. I have a JS script in the HTML file for one of my apps: <script type="text/javascript"> function intervalSelector() { let intervalField = document.getElementById("intervalField"); let hourField = document.getElementById("hourField"); let minuteField = document.getElementById("minuteField"); intervalField.addEventListener("change", function () { if (intervalField.value === "Hourly") { hourField.disabled = true; minuteField.disabled = false; } else { hourField.disabled = false; minuteField.disabled = false; } }); } </script> This function is called by a button element further down in the HTML document: <button style="background-color: orange; color: white; float:left; margin-right:5px;" class="btn" type="button" onclick="intervalSelector()" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample"> Schedule </button> The function gets three elements by their Id in the HTML document: <select class="form-select form-select-lg mb-3" aria-label=".form-select-lg example" id="intervalField"> <option selected>Interval</option> <option value="1">Daily</option> <option value="2">Hourly</option> </select> <input name="hour" class="form-control" type="number" min="0" max="23" value="23" id="hourField"> <input name="minute" class="form-control" type="number" min="0" max="59" value="57" id="minuteField"> When I run my webapp, and click the button that calls the function, it says that the intervalSelector function is not defined. Any ideas on what the problem could be? -
Django MPTTModel Tree structure gets corrupted inside Redis Cache upon concurrent creation and retrieval operations
Usecase: We've got a case where one of our models Content represents hierarchical data for our organization and for maintaining this hierarchy we've used django-mptt package which is based on the Modified Preorder Tree Transversal algorithm and for making the response time faster for the client, we've introduced the Redis Cache via django-cacheops package for our models. Img src = http://www.sitepoint.com/hierarchical-data-database-2/ Problem: As we've used MPTTModel for maintaining the hierarchical structure of our data inside the database, when concurrent CREATE and READ requests are made by the clients we end up with Corrupted data inside our Redis Cache. Reason: When we do a create operation on the tree, The MPTTModel Package actually creates the instance of the object inside the database and build/maintains the tree and while the MPTTModel package is building/maintaining the tree at the same time a read request is made to that instance which is then resulting in corrupted data inside the Redis Cache Note:- our system architecture is based on Microservice Architecture due to which we've got a couple of requests being made by different Microservices. Has anyone faced such an issue before and what solution can we use to resolve this problem? -
why can't python import a file from a relative path?
I found this helpful: How to access a module from outside your file folder in Python? But python is unable still to find the folder. I have a django folder structure that looks like this: todoproject pythonDiscordChatbot processLessons.py todoapp testChatFunctions.py I'm trying to import a function called 'routes' into testChatFunctions.py, but I keep getting this error: File "c:\Users\Kaij\Documents\chatSiteDjango\todoproject\todoapp\testChatFunctions.py", line 6, in <module>tSiteDjango\todoproject\todoapp\tesssLesson import *tChatFunctions.py", line 6, in <modd 'pythonDiscordChatbot'ule> atSiteDjango> & C:/Users/Kaij/Documents/djangoTests/django_tailwind_project/env/Scripts/ from pythonDiscordChatbot.procechatSiteDjango/todoproject/todoapp/testChatFunctions.pyssLesson import * ModuleNotFoundError: No module nametSiteDjango\todoproject\todoapp\testChatFunctions.py", line 6, in <module>d 'pythonDiscordChatbot Here's what I have tried: # Bring your packages onto the path import sys, os sys.path.append(os.path.abspath(os.path.join('..', 'pythonDiscordChatbot'))) # Now do your import from pythonDiscordChatbot.processLesson import * # from pythonDiscordChatbot.processLesson import routes routes("hello", "website_180.02.1") Thank you -
Cannot login a normal user in a django website having a custom user model
I have made a Custom user model for my website. I have used AbstractBaseUser to make the model and also set it up at the settings. The creation of user and superuser is working fine without any problems and also a super user can login from the admin page. However when I am trying to make a normal user to login in the website is returns User none. But the normal user exists in the datatbase. I am using the authenticate to make a user login since I have used AbstractBaseUser. I am unable to unserstand why is this saying that the user doesn't exist. Please rectify me if I have written some wrong codes. models.py (the custom user model), here the is_active is false but I manually activate it after regd so the problem is not because of this class CustomUser(AbstractBaseUser, PermissionsMixin): email = models.EmailField( unique= True) full_name = models.CharField(max_length=255) phone_no = models.CharField(max_length=10, blank= True) address = models.CharField(max_length=500, blank= True) plan = models.CharField(max_length=255, blank= True) age = models.CharField(max_length=2, blank= True) date_joined = models.DateTimeField(default=timezone.now) is_staff = models.BooleanField( default=False) is_active = models.BooleanField( default=False) objects = CustomUserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['full_name'] def __str__(self): return self.email managers.py (custom user model manager) … -
How can I register with 2 categories of users and save the status in the database?
This is what my current code looks like, but the status is not saved in the database. Even if in models I default = 'Admin' in the database it appears at status: '-'. Why? I want to add the status to the database to know which category users belong to models.py STATUS_CHOICES = Choices( ('Client', 'Client'), ('Master', 'Master') ) class User(AbstractUser): email = models.EmailField(error_messages={ 'unique': 'A user is already registered with this email!'}, verbose_name='email address', max_length=255, unique=True, ) confirmed_password = models.CharField( max_length=128, verbose_name='confirmed_password') status = models.CharField( max_length=100, choices=STATUS_CHOICES, verbose_name='status', default="Admin") username = models.CharField(max_length=254) USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username'] forms.py class EditUserForm(forms.ModelForm): class Meta: model = User fields = ('email', 'password', 'confirmed_password', 'username') views.py def RegisterUser(request): master = EditUserForm(request.POST) if request.POST: if master.is_valid() and request.POST["status"] == "Master": master.save() messages.success(request, "It was successfully registered master") return render(request, "registration/index.html") elif master.is_valid() and request.POST["status"] == "Client": master.save() messages.success(request, "It was successfully registered CLIENT") return render(request, "registration/index.html") else: return render(request, "registration/register.html", {}) else: master = EditUserForm() return render(request, "registration/register.html", {'master': master}) register.html <h1>Registration Page</h1> <form action="" method="post"> {% csrf_token %} {{ master.as_p }} <input type="submit" name="status" value="Master" /> <input type="submit" name="status" value="Client" /> </form> -
Django drf-spectacular How to split api descriptions for public and private use?
I want to make 2 different documentations. One is for public with few api methods and no authz. Another one is for private usage with all api methods and only for authorized users. -
Django: multiple dates form
so in my .html file i inserted two inputs for two different dates (end and start) From: <input type='date' name='fromdate'/> To: <input type='date' name='todate'/> <input type='submit' value='Submit'/> and in my models.py i have this model class MyDatesInput(models.Model): dates = ArrayField(models.DateTimeField() ) i need to use the dates for an api call like this: http://history.openweathermap.org/data/2.5/history/city?lat={lat}&lon={lon}&type=hour&start={start}&end={end}&appid={API key} how do i link all of this together? -
how to query filter self foreign key
query = Services.objects.filter(parent_id__isnull=True,sub_service__type=0) When im filtering sub_service__type=1 It returns correct output. i.e. type 1 for sub_service, But when i change it to sub_service__type=0 filters doesnot work. Instead it returns me every output. i.e. type 0,1 Instead of type 0 Heres Code: # MODELS class Services(models.Model): type_ = ((1, 'INCLUSIVE'), (0, 'EXCLUSIVE')) service_id = models.AutoField(primary_key=True) parent_id = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='sub_service') type = models.SmallIntegerField(blank=True, null=True, choices=type_) # VIEWS @action(detail=False, methods=['get'], permission_classes=(AllowAny,)) def service_list(self, request): query = Services.objects.filter(parent_id__isnull=True,sub_service__type=0) serializer = SubServiceSerializer(query , many=True).data return Response(serializer.data) # SERIALIZER class SubServiceSerializer(serializers.ModelSerializer): class Meta: model = Services fields = "__all__" class ServiceSerializer(serializers.ModelSerializer): sub_service = SubServiceSerializer(many=True) class Meta: model = Services fields = "__all__" -
Django - how to use many variables in a template tag value
I want to add two variables as the value on an input tag but the syntax I am currently using only renders the first variable. How can I make both variables show up? Current code loan={ amount": 200000, "due_date": "12/12/2021", } <input class="block" id="address" name="address" type="number" value="{{ loan.amount }} {{ loan.currency }}"> This currently outputs nothing -
AuthenticationForm.is_valid() always return False
I'm new to Django. form.is_valid() always return False. from django.contrib.auth.forms import AuthenticationForm class SignInForm(AuthenticationForm): pass Test method is below. form = SignInForm({'username': 'user2', 'password': 'example2'}) self.assertTrue(form.is_valid()) form.is_valid() always return False. Why??? -
Find user name and last name Query Django
In my Django app I have module 'users' which I use to create profiles. I need help on how to query and find user name and last name depending on Profile in 'users'. users/models.py from django.db import models from django.contrib.auth.models import User class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) def __str__(self): return f'{self.user.username} Profile' def save(self, *args, **kwargs): super().save(*args, **kwargs) I'm not sure, but how can I find 'user.first_name' and 'user.last_name' using only Profile. Something like: queryset = User.objects.values('first_name').filter(Profile=Profile_var) -
Limiting the queryset displayed after the foreign key in the template - Django
I know how to return all objects by a foreign key in a Django template. But how to limit their number to the last 3? Is it possible? Example Models.html class Person(models.Model): ... class Tag(models.Model): person = models.ForeignKey(Person, on_delete=models.CASCADE) name = models.CharField(max_length=10) Template.html {% for tag in person.tag_set.all %} ... {% endfor %} What is expected (only the last 3 objects)? {% for tag in person.tag_set.all[:3] %} ... {% endfor %} -
when i make a post it shows this errorField ‘id’ expected a number but got ‘d’. NOTE: the post get created but i get this error
I have tried a lot of things to resolve this issue but they are not working that why i wanna ask somebody that better than me here. Ive tried using a slug field it doesnt show that, but i wanna use id that when it starts showing the error. NOTE: the post get created perfectly well and that it then shows this error but the posts was made. I treid making the post using a forms from my frontend let me show some code views.py def blogpost(request): if request.method == "POST": form = BlogPostForm(request.POST, request.FILES) if form.is_valid(): form.instance.creator = request.user form.save() # ← no commit=False messages.success(request, f'Hi, Your Post have been sent for review and would be live soon!') return redirect('blog:home') else: form = BlogPostForm() context = { 'form': form } return render(request, 'blog/AddPost.html', context) # this is the blog list view def blog_list(request): posts = Blog.objects.filter(status='published').order_by('-created') categoriess = Category.objects.all() context = { 'posts': posts, 'categories': categoriess, } return render(request, 'blog/bloghome.html', context) #this is the blog detail view def blog_detail(request, post_id): post = get_object_or_404(Blog, id=post_id) # post = Blog.objects.filter(slug=blog_slug) categories = Category.objects.all() comments = post.comments.filter(active=True) new_comment = None if request.method == "POST": comment_form = CommentForm(request.POST) if comment_form.is_valid(): new_comment = comment_form.save(commit=False) …