Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
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 -
How to check with decorator if user has access to some objects in Django
I'm working on a project, with structure as below. And I was trying to check if user is a member of the requested team and is allowed to see it's details. So I was trying to achieve this by decorators, but i'm still getting http 500 error. I'm not sure if it's right solution and just bad implementation or it's better to make it in different way. I'll be gratefull for Your help. Team/Models.py roles = (('admin', 'admin'), ('member', 'member'), ('guest', 'guest')) class Team(models.Model): name = models.CharField(max_length=150) description = models.TextField(blank=True) members = models.ManyToManyField(User, through='Membership') cppTables = models.JSONField(default=list, blank=True) def __str__(self): return self.name def get_absolute_url(self): return f'teams/{self.pk}/' def has_user(self, user_id): return self.members.get(pk=user_id).exists() class Membership(models.Model): member = models.ForeignKey(User, on_delete=models.CASCADE) team = models.ForeignKey(Team, on_delete=models.CASCADE) role = models.CharField(max_length=15, choices=roles, default='member') def __str__(self): return str(self.member) class Meta: unique_together = [['member', 'team']] Team/Decorators.py def required_membership(view_func): def wrapper(request, *args, **kwargs): team_id = kwargs['team_id'] team = Team.objects.get(pk=team_id) if team.has_user(request.user.id): return view_func(request, *args, **kwargs) else: raise HttpResponseForbidden return wrapper Team/Views.py @method_decorator(required_membership, name="dispatch") class TeamDetail(APIView): def get_object(self, pk): try: return Team.objects.get(pk=int(pk)) except Team.DoesNotExist: raise Http404 def get(self, request, pk, format=None): team = self.get_object(pk) serializer = TeamSerializer(team, many=False) return Response(serializer.data) -
multiplication in django in django
how do i multiply two numbers in a budget model for example i want to multiply labour hours and rate per hour ...Then after i add that figure to the total cost of everything ..please help from django.db import models from django.contrib.auth.models import User from .directors import Directors class ApprovedBudget(models.Model): job=models.CharField(max_length=255) time=models.DateTimeField() labourhours=models.IntegerField() rate=models.DecimalField(max_digits=9, decimal_places=2) materials=models.DecimalField(max_digits=9, decimal_places=2) travel=models.DecimalField(max_digits=9, decimal_places=2) other=models.DecimalField(max_digits=9, decimal_places=2) notes=models.CharField(max_length=450) budget=models.DecimalField(max_digits=9, decimal_places=2) actual=models.DecimalField(max_digits=9, decimal_places=2) undercover=models.DecimalField(max_digits=9, decimal_places=2) status = models.CharField(max_length=12,default='pending') #pending,approved,rejected,cancelled is_approved = models.BooleanField(default=False) #hide updated = models.DateTimeField(auto_now=True, auto_now_add=False) created = models.DateTimeField(auto_now=False, auto_now_add=True) objects = Directors() def str(self): return str(self.job) class Meta: verbose_name = (ApprovedBudget) verbose_name_plural = ('ApprovedBudget') @property def labour(self): if(self.labourhours != None ): labour=self.labourhours*self.rate return labour enter code here -
How to create a django queryset object for inner join?
I have two tables. class DibbsSpiderDibbsMatchedProductFieldsDuplicate(models.Model): nsn = models.TextField() nsn2 = models.TextField() cage = models.TextField() part_number = models.TextField() company_name = models.TextField(blank=True, null=True) supplier = models.TextField(db_column='Supplier', blank=True, null=True) # Field name made lowercase. cost = models.CharField(db_column='Cost', max_length=15, blank=True, null=True) # Field name made lowercase. list_price = models.CharField(db_column='List_Price', max_length=15, blank=True, null=True) # Field name made lowercase. gsa_price = models.CharField(db_column='GSA_Price', max_length=15, blank=True, null=True) # Field name made lowercase. hash = models.TextField() nomenclature = models.TextField() technical_documents = models.TextField() solicitation = models.CharField(max_length=32) status = models.CharField(max_length=16) purchase_request = models.TextField() issued = models.DateField() return_by = models.DateField() file = models.TextField() vendor_part_number = models.TextField() manufacturer_name = models.TextField(blank=True, null=True) product_name = models.TextField(blank=True, null=True) unit = models.CharField(max_length=15, blank=True, null=True) class Meta: managed = False db_table = 'dibbs_spider_dibbs_matched_product_fields_duplicate' class DibbsSpiderSolicitation(models.Model): line_items = models.IntegerField() nsn = models.TextField() nomenclature = models.TextField() technical_documents = models.TextField() purchase_request = models.TextField() class Meta: managed = False db_table = 'dibbs_spider_solicitation' What will be the equivalent django query for the inner join of two tables on the column nsn? My views function will be like def inner(request,nsn): obj = ....................... context = {'obj':obj} return render(request,,"a.html",context) the queryset should return the combination of two tables according to the common nsn. -
Django project is corrupted
I have a new project for a little online shop. I use the PyCharm code editor. It saves the progress whenever I switch to a new window and the server autorestarts. After a while of working on the project the server stopped doing that and now it needs to be done manually. When I got to making forms, I noticed that they don't show on the page. It's the same logic as in my previews projects. I made exactly the same forms and models from the old project in the current one and they do not work. Then I did the opposite: I added the models and the form from the current project into the old one and they do render on page. What could be the problem and where shoul I start looking for it? -
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*)
I am trying to run this simple command in Datagrip but this error is showing continuously! Can anyone help me? " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) FROM services_receiver' at line 1 " enter image description here -
Convert finished worksheet into io.BytesIO
According to xlsxwriter documentation https://xlsxwriter.readthedocs.io/example_django_simple.html, i can create and write excel-files into django HttpResponse like this: def get(self, request): # Create an in-memory output file for the new workbook. output = io.BytesIO() # Even though the final file will be in memory the module uses temp # files during assembly for efficiency. To avoid this on servers that # don't allow temp files, for example the Google APP Engine, set the # 'in_memory' Workbook() constructor option as shown in the docs. workbook = xlsxwriter.Workbook(output) worksheet = workbook.add_worksheet() # Get some data to write to the spreadsheet. data = get_simple_table_data() # Write some test data. for row_num, columns in enumerate(data): for col_num, cell_data in enumerate(columns): worksheet.write(row_num, col_num, cell_data) # Close the workbook before sending the data. workbook.close() # Rewind the buffer. output.seek(0) # Set up the Http response. filename = 'django_simple.xlsx' response = HttpResponse( output, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) response['Content-Disposition'] = 'attachment; filename=%s' % filename return response but i want to make code more reusable and testable, so i intented to split this function into 3: def create_worksheet(..) -> xlsxwriter.worksheet.Worksheet pass def convert_worksheet_into_io(worksheet: xlsxwriter.worksheet.Worksheet) -> io.BytesIO: pass def bytesio_to_response(output: io.BytesIO, filename) -> django.http.HttpResponse: response = HttpResponse( output, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) response['Content-Disposition'] = f'attachment; filename="{filename}.xlsx"' … -
django-ninja vs djangorestframework
Which of above rest framework do you prefer as of 2022 and django v4? djangorestframework django-ninja I will appreciate if you give me the pros and cons of each for rest-api implementation with django v4.