Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
render() got an unexpected keyword argument 'context_instance' in Django 3.0
I had updated my project from Django 1.8 to Django 3.0 Let us consider my views.py as: class StockPricingView(View): def get(self, request, pk): data1 = OtherOrder.objects.get(id=pk) data = PricingModule.objects.filter(item__other_order_id=pk) charges = OtherOrderAdditionalCharges.objects.filter(order_id=pk) if charges.exists(): total_charges = charges.aggregate(Sum('amount')).get('amount__sum') or 0.00 order_total = data1.otherorderitem_set.all().aggregate(Sum('total_cost')).get('total_cost__sum') or 0.00 per_charges = (total_charges/order_total)*100 return render_to_response( 'stock/otherorders/stock_pricing_view.html', locals(), context_instance=RequestContext(request)) Please help me solve this isssue -
How to categorize WhiteNoise?
I am writing scientifically about a Django application. The application returns static files via WhiteNoise and I would like to learn more about it to be able to write precise. How is WhiteNoise classified? Is it correct to speak of a middleware? How is the request processed until WhiteNoise comes into play? Is WhiteNoise responsible for providing the correct reference to the static file in the Django template or does it do more? Does the behavior change if the static files are hosted on a CDN? I highly appreciate any input or reference to helpful articles! Thanks in advance. -
How to add multiple reviews or products using for loop in Django? (fetching data)
I need to add multiple reviews using "for loop". I made the model, and then through the admin panel (of Django)added a review. Now within the same code, I need to add another review. I'm pretty new at this and have to follow the instructions and can't do it any other way. This is how I have looped one review: {% for display in Review %} <i><img src="{{display.image}}"/><span>{{display.name}}</span></i> <p>{{display.desc}}</p> {% endfor %} This is the model: class Review(models.Model): image = models.ImageField(upload_to="static/images") name = models.CharField(max_length=20) desc = models.TextField() -
Certbot Authenticator Plugin error for Nginx
I'm trying to issue an SSL certificate using Cerbot. The command that I'm using is as follows. sudo certbot --nginx -d example.com -d '*.example.com' But every time I run this command, I'm getting the following error. Plugins selected: Authenticator nginx, Installer nginx Obtaining a new certificate Performing the following challenges: Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. You may need to use an authenticator plugin that can do challenges over DNS. Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. You may need to use an authenticator plugin that can do challenges over DNS. Now, I don't understand how to fix this issue. Please help. I'm following this guide from DigitalOcean to issue an SSL certificate for Nginx using Cerbot. Thank You. -
Update/Remove Many to Many Field in Django
I have saved the object in the database with the many to many fields, after saving the object in the database I want to append one more ID in the many to many field so how can I do that in Django. models.py class Project(models.Model): name = models.CharField(max_length=255, default='') description = models.CharField(max_length=255, default='') account = models.ManyToManyField(User) JSON from Frontend { "name": "Project 1", "description": "description of project 1", "account": [1, 2] } it objects is saved now, what if I want to add id 3 to account? -
How to serialize an extended model in Django
I'm extending a django auth user in a Profile model: from django.db import models from django.contrib.auth.models import User class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) activity = models.IntegerField(default=500) def _str_(self): return self in my views I'm getting the current auth user and I want to return his profile: @api_view(['GET']) @permission_classes([IsAuthenticated]) def getUserProfile(request): user= request.user # this will give us the current authenticated user serializer = profileSerializer(user, many=False) #here I know that I must enter a user + activity but I don't know how (it is the place from what I'm getting the error) return Response(serializer.data) Here is my serializers code: from rest_framework import serializers from .models import Profile class profileSerializer(serializers.ModelSerializer): class Meta: model = Profile fields = ('__all__') I thought of saving a new profile to db whenever a User signed up, but I use only logging in from an external server (LDAP) and my login code is : class MyTokenObtainPairSerializer(TokenObtainPairSerializer): def validate(self, attrs): data = super().validate(attrs) data['username'] = self.user.username data['first_name'] = self.user.first_name data['last_name'] = self.user.last_name #data['activity'] = self.user.activity (it won't work because self.user is the auth user not the profile ) return data class MyTokenObtainPairView(TokenObtainPairView): serializer_class = MyTokenObtainPairSerializer urls.py : from django.urls import path from .views import getUserProfile urlpatterns = … -
Django context not passing in HTML template
I am not understanding where I am doing mistake. I am trying to passing context in my html page but why context isn't passing. see my code: #views.py def SupportReply(request): replyAgent = Contact.objects.all() context = { replyAgent:'replyAgent', } print(context) return render(request,'contact/support-reply.html',context) urls.py path('support-agent/',views.SupportReply,name='support-agent'), HTML {% for i in replyAgent %} {{i.support_ticket}} {%endfor%} See my terminal result where all object printing from context: [30/Dec/2021 17:41:29] "GET /support-agent/ HTTP/1.1" 200 6571 {<QuerySet [<Contact: Contact object (45)>, <Contact: Contact object (44)>, <Contact: Contact object (43)>, <Contact: Contact object (42)>, <Contact: Contact object (41)>, <Contact: Contact object (40)>, <Contact: Contact object (39)>, <Contact: Contact object (38)>, <Contact: Contact object (37)>, <Contact: Contact object (36)>, <Contact: Contact object (35)>, <Contact: Contact object (34)>, <Contact: Contact object (33)>, <Contact: Contact object (32)>, <Contact: Contact object (31)>, <Contact: Contact object (30)>, <Contact: Contact object (29)>, <Contact: Contact object (28)>, <Contact: Contact object (27)>, <Contact: Contact object (26)>, '...(remaining elements truncated)...']>: 'replyAgent'} why I am not seeing any object in my HTML page? where I am doing mistake? -
Website hangs in mobile but runs well in desktop
The home page of https://inscignis.in/ runs well in desktop but in mobile devices, when we scroll down to the bottom and try to scroll up, it kind of gets stuck in the motion and the experience isn't smooth. Couldn't figure out any possible bugs. it will be really helpful if anyone can give any general solutions to it. Sorry couldn't post the website code here as it is owned by my university. Thanks in advance. -
Django-filter issue
I have this problem, so i did a filtering by categories on my AllProducts Page and it worked perfectly (django-filter). The thing is that the startup im working at has another Django Model which is ProductInStore and that's an additional model connected to Product which has to show all the products that a certain shop has. class Product(models.Model): name = models.CharField(max_length=200) slug = models.SlugField(max_length=200, unique=True, null=False, editable=False) created_at = models.DateTimeField(editable=False, default=timezone.now) updated_at = models.DateTimeField(default=timezone.now) product_category = models.ManyToManyField(EcommerceProductCategory) description = RichTextField(max_length=2000, null=True, blank=True) product_producer = models.ForeignKey('ProductProducer', on_delete=models.CASCADE) creator = models.ForeignKey('users.CustomUser', on_delete=models.CASCADE, null=True, blank=True, related_name='product_creator') points_from_reviews = models.DecimalField(max_digits=6, decimal_places=2, default=0, help_text='Średnia ocena produktu') unique_id = models.CharField(max_length=256, unique=True) type_of_unique_id = models.CharField(max_length=64) product_img = models.FileField(upload_to='ecommerce_product_img/', null=True, blank=True) class ProductInStore(models.Model): product = models.ForeignKey('Product', on_delete=models.CASCADE) store = models.ForeignKey('Store', on_delete=models.CASCADE) price = models.DecimalField(max_digits=6, decimal_places=2, default=0, help_text='Cena w sklepie') currency = models.CharField(max_length=4) url = models.CharField(max_length=200) created_at = models.DateTimeField(editable=False, default=timezone.now) updated_at = models.DateTimeField(default=timezone.now) The thing is that when im filtering by categories in Product model it works flawlessly and here's how it looks with Product Model def all_products(request): product = Product.objects.all().order_by('-created_at') search_filter = ProductFilter(request.GET) product = search_filter.qs paginator = Paginator(product, 20) page_number = request.GET.get('page') page_obj = paginator.get_page(page_number) context = { 'page_obj': page_obj, 'search_filter': search_filter, } return render(request, 'ecommerce/all_products.html', context) … -
How to integrate oauth2 with credentials login?
I am building a web service in which I want to implement oauth authorization, to make login process faster and more user friendly. However, I also need to enable old fashion login+password signing in method for those who do not have accounts in oauth providers platforms. What is the best approach to connect these two methods? I am using Django. Thanks for the answer. -
Delete old file when uploaded new in django rest-framework
I wanted to delete old image from folder when uploaded new image and I tried but couldn't get result. serializers.py from base.services import delete_old_file class CourseCenterSerializer(serializers.ModelSerializer): class Meta: model = CourseUser fields = [ 'id', 'name', 'slug', 'profile_img', ] def update(self, instance, validated_data): delete_old_file(instance.profile_img.path) return super().update(instance, validated_data) services.py import os def delete_old_file(path_file): #Delete old file when upload new one if os.path.exists(path_file): os.remove(path_file) What I did so far, I don't know what's wrong with it -
What's the best way playing around a Django queryset, without having to runserver
Due to an import error i get when trying to import a Django data model in a file running under my apps folder, i'm writing this post to have some help on this. What is another way i can play around with a MyDataModel.objects.all() (doing for loops for example), without running the server and using the outputs on HTML. What i mean is that i want, from my text editor (Sublime Text), to be able to run something like this (within my apps folder): from .models import Article all_articles = Article.objects.all() -
WHY I CAN'T ACCESS TO USER__id FOREIGNKEY MODEL IN VIEW.PY
def submit_review(request, product_id): url = request.META.get('HTTP_REFERER') if request.method == 'POST': try: reviews = ReviewRating.objects.get(user__id=request.user.id,Product__id=product_id) form = Reviewform(request.POST, instance=reviews) form.save() messages.success(request, 'Thank you!your review has been updated.') return redirect(url) except ReviewRating.DoesNotExist: form = Reviewform(request.POST) if form.is_valid(): data = ReviewRating() data.subject = form.cleaned_data['subject'] data.review = form.cleaned_data['review'] data.rating = form.cleaned_data['rating'] data.ip = request.META.get['REMOTE_ADDR'] data.product_id = product_id data.user_id = request.user.id data.save() messages.success(request, 'Thank you! Your review has been submitted') return redirect(url) -
Django user is_staff field set to true in instance but reads false in permission class
I am trying to create an api endpoint that lists all the users in the database, but I only want staff members to be able to do this. By default when a secretary is created, the is_staff field in the users model is set to True. In the permission class, I am checking to see if this field is set to true and grant permissions accordingly. Since I have many different types of users with slightly different attributes, I created a concrete base user model that is inherited by other user models. The SECRETARY role is assigned by the serializer when handling the secretary creation endpoint request. class User(AbstractBaseUser): class Roles(models.TextChoices): """define the user roles""" ADMIN = "ADMIN", "Admin" PRINTER = "PRINTER", "Printer" SECRETARY = "SECRETARY", "Secretary" PHOTOGRAPHER = "PHOTOGRAPHER", "Photographer" EDITOR = "EDITOR", "Editor" CLIENT = "CLIENT", "Client" SYSTEM = "SYSTEM", "System" APPLICANT = "APPLICANT", "Applicant" id = models.CharField( max_length=8, unique=True, primary_key=True, default=uidgen, editable=False ) first_name = models.CharField("First Name", max_length=30, null=False) last_name = models.CharField("Last Name", max_length=30, null=True, blank=True) email = models.EmailField( verbose_name="Email", max_length=255, unique=True, null=False ) username = None phone_number = models.CharField( "Phone Number", max_length=20, null=False, unique=True ) dob = models.DateField(verbose_name="Date Of Birth", blank=True, null=True) role = models.CharField(max_length=50, default=Roles.CLIENT) … -
Why is my forms content showing in the title for my edit function? Django
I am currently doing an assignment where one of the requirements for the edit function is that the user should be able to click on an edit button and be taken to a page where they have the option of editing what they wrote before. The issue I am having is that I am using INITIAL to push the previously populated content so that it will show, but this keeps showing on the title of the page instead of inside the textarea content. I have tried to tweak this but after several attempts, I keep getting the same issue, when i submit this, it gives me a new entry/page when what I want to do is edit the page and not create a new page. VIEWS.PY class AddPageForm(forms.Form): title = forms.CharField() content = forms.CharField(widget=forms.Textarea( attrs={ "class": "form-control", }) ) def edit_page(request, title): if request.method == "GET": title = title content = util.get_entry(title) form = AddPageForm({"title": title, "content": content}) return render( request, "encyclopedia/editpage.html", {"form": form, "title": title} ) form = AddPageForm(request.POST) if form.is_valid(): title = form.cleaned_data.get("title") content = form.cleaned_data.get("content") util.save_entry(title=title, content=content) return redirect('encyclopedia:entrypage', title) EDIT PAGE {% block body %} <h1>Edit</h1> <form action="{% url 'encyclopedia:editpage' title %}" method="post"> {% csrf_token %} … -
Unittest code for Ldap login authentication in DRF
I want to write unittest code for ldap login authentcation. I have no idea about how to start also. I got assigned for this task. I watched tutorials regarding unt test there i got basic things only. Please refer any idea or link or tutorial about this.Plz rescue me out,.. -
github actions - django ci stopped working after switching db to postgreSQL
After switching db from SQLite to postgreSQL my action is not working I an error at the run migrate step the error psycopg2.errors.UndefinedTable: relation "accounts_useraccount" does not exist I would appreciate any help I could get, Thanks in advance action file name: Django CI on: push: jobs: build: runs-on: ubuntu-latest defaults: run: working-directory: ./api strategy: max-parallel: 4 matrix: python-version: [3.8] services: postgres: image: postgres:latest env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - 5432:5432 # needed because the postgres container does not provide a healthcheck options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: run migrate run: | python manage.py migrate - name: Run Tests run: | pytest -
How to use tablespace in django for this model
I have some models with relations and i need to to use tablespace in that models , please help how i solve it . class Teacher(models.Model): # classe 365's id of the teacher classe_365_id = models.CharField(unique=True, max_length=50) # email of the teacher email = models.EmailField(max_length=254) # first name of the teacher first_name = models.CharField(max_length=50) # last name of the teacher last_name = models.CharField(max_length=50) # Many to Many fiels with the subject, because a teacher can teach multiple subjects # and also a subject can be taught by many teacher in same class subjects = models.ManyToManyField('Subject') #status for teacher is active or not # status = models.BooleanField(default=True) def __str__(self): return self.first_name + self.last_name -
How to share data between auth users Django
I have a list of projects in my Django which is created by some auth user, so I want to share specific projects with some other users as well. for example, I have created a "project ABC" from my frontend app so what if I want to share that "project ABC" with some other account? something like access control functionality. you can see the account in the Project model below, so currently one account can hold the project but I want to share that Project with others as well. models.py class Project(models.Model): name = models.CharField(max_length=255, default='') description = models.CharField(max_length=255, default='') created_at = models.DateTimeField(auto_now=True, null=True) updated_at = models.DateTimeField(auto_now=True, null=True) is_active = models.IntegerField(default=1, null=True) account = models.ForeignKey(User, on_delete=models.CASCADE, null=True) -
Django Admin saving model twice - Is It Django (version 3.1) BUG?
Hy everyone, lately I was developing LMS, and I noticed a weird behavior, Django Admin is saving model twice, and am sure I click "save" button only once. Just to make sure its not bug in my code, I made a fresh new project with single model and simply registered it with no modification in admin class and still got the same weird behavior. My code: models.py admin.py Pipfile When I saved a test model with title "record 1", it saved it twice: I didn't modified anything else. Please help -
Django models does not create table after I clone it on github
Recently I'm doing a small Django project that I have to work with my teammates, so I clone the project's repository from github. The problem is , the database in my computer doesn't have the table so i think i have to makemigrations and migrate it. But after i did that,django only createed its own tables but didn't create another tables that my teammates wrote in Django's modles. I really need your guys hlep this are the models my teammates wrote but after i makemigrations and migrate it phpmyadmin does not show the tables i want enter image description here enter image description here -
Django app incorrect datetime during deployment
I have a django model with a datetime field like this: date_creation = models.DateField(auto_now_add=True) Locally, on my machine, this control is created with the local date and time. When the application is deployed the field is not created with local time. I tried to do this: date_creation = models.DateField(default=datetime.now()) It does not work. How to solve this problem ? I am in central Africa -
Provide short_description for model field in Django Admin
Sometimes I want to display many boolean fields in the list_display view in Django Admin. Unfortunately these fields come with a long verbose_name which gives very ugly and large columns. I know that you can provide a short_description attribute to callables for providing column names in the list_display view in Django Admin. So I reverted to doing this: class MyModelAdmin(admin.ModelAdmin): list_display = ['id', 'field1', 'field2', 'short_boolfield3', 'short_boolfield4'] def short_boolfield3(self, obj): return obj.boolfield3 short_boolfield3.short_description = 'fld3' short_boolfield3.boolean = True def short_boolfield4(self, obj): return obj.boolfield4 short_boolfield4.short_description = 'fld4' short_boolfield4.boolean = True Which works, but is definitely against DRY, especially when you have many boolean fields. Is there a short_description equivalent for Model fields? -
Oauth Bearer token throws an error when trying to access an api?
I have djangorestframework-simplejwt for jwt authentication and for oauth i have used drf-social-oauth2. The access token works when users login from simplejwt but the access token provided by the url /convert-token/ throws an error like this:It was working fine without simplejwt. Is there anything i need to add? { "detail": "Given token not valid for any token type", "code": "token_not_valid", "messages": [ { "token_class": "AccessToken", "token_type": "access", "message": "Token is invalid or expired" } ] } -
Remove a field which was Primary Key in models.py
I have a model with the following fields: email = models.EmailField(verbose_name="email", max_length=60, unique=True) department = models.TextField(verbose_name="department") username = models.CharField(max_length=30, unique=True) emp_id = models.AutoField(primary_key=True) is_admin = models.BooleanField(default=False) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) is_superuser = models.BooleanField(default=False) hide_email = models.BooleanField(default=True) name = models.TextField(verbose_name="employee name") I want remove emp_id field, as you can see it is the primary key field. Can you please create a migration file for the same? Thank you