Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django Administration - Customize list appearance and selection of ManyToManyField keys
I have a database with 1000+ songs. I have a custom model "Schedule" that accepts songs as field. models.py from django.db import models class Song(models.Model): title = models.CharField(max_length=255) words = models.TextField() slug = models.SlugField() date = models.DateTimeField(auto_now_add=True) snippet = models.CharField(max_length=50) def __str__(self): return self.title class Schedule(models.Model): songs = models.ManyToManyField(Song) date = models.DateTimeField(auto_now_add=True) def __str__(self): return str(self.date) admin.py from django.contrib import admin from .models import Song, Schedule @admin.register(Song) class SongModel(admin.ModelAdmin): search_fields = ('title',) list_display = ('title',) list_per_page = 100 @admin.register(Schedule) class ScheduleModel(admin.ModelAdmin): search_fields = ('date',) list_display = ('date',) list_per_page = 100 I want to be able to add any song I want to a schedule, but it is difficult do to so through the default list in the Django-Administration, which looks like this. I have to scroll and CTRL+select each one of them, then add them. I'd like something more more practical where I can select, search, etc. What are my options? I don't know where to start looking. -
Setting a ImageField initial value
I have a form as below: class FileChangeForm(ModelForm): the_image = forms.ImageField() class Meta: model = ... fields = [ 'fields', 'the_image' ] I want to set the image in the form init, I tried to do a couple of things but nothing seems to populate the HTML form with an initial value using a bytes array. My Init: def __init__(self, *args, **kwargs): super(FileChangeForm, self).__init__(*args, **kwargs) file_data = some byte array kwargs['instance'].meter_image = SimpleUploadedFile('test.png', file_data.content) self.fields['the_image'].initial = SimpleUploadedFile('test.png', file_data.content) -
AWS Boto3: Access denied while running in Django Server
My textract code is successfully working when running in its own file, however, when I try to run it in my django development server, the authentication stops working. I recieve this exception: botocore.errorfactory.InvalidS3ObjectException: An error occurred (InvalidS3ObjectException) when calling the StartDocumentAnalysis operation: Unable to get object metadata from S3. Check object key, region and/or access permissions. So far, I have tried: Passing credentials as parameters in the boto.client() method Assuming a role, rather than using IAM user credentials Verified the object key, and region Checked my firewall Here is my authentication format: client = boto3.client('sts', region_name="us-east-2") # Assumes a role. response = client.assume_role( RoleArn='arn:aws:iam::xxx:role/xxx/xxx', RoleSessionName = 'djangoBoto3', DurationSeconds = 3600, ) textract = boto3.client( # Instantiate the textract client "textract", region_name="us-east-2", aws_access_key_id = response['Credentials']['AccessKeyId'], aws_secret_access_key = response['Credentials']['SecretAccessKey'], aws_session_token = response['Credentials']['SessionToken'] ) Here is how I am calling the textract function response = textract.start_document_analysis( DocumentLocation = { 'S3Object':{ 'Bucket': bucket, 'Name': key, } }, FeatureTypes = ['TABLES', 'FORMS'] ) Some AWS API calls are working within Django. For example I can upload files to S3 buckets. This leads me to suspect maybe this could be a signature issue. I read here Amazon Docs that certain AWS operations such as S3 can … -
Django and a Database with write-Instance + Multiple Read Replicas -- running Celery jobs
I have a django app running in production. Its database has main write instance and a few read replicas. I use DATABASE_ROUTERS to route between the write instance and the read replicas based on whether I need to read or write. I encountered a situation where I have to do some async processing on an object due to a user request. The order of actions is: User submits a request via HTTPS/REST. The view creates an Object and saves it to the DB. Trigger a celery job to process the object outside of the request-response cycle and passing the object ID to it. Sending an OK response to the request. Now, the celery job may kick in in 10 ms or 10 minutes depending on the queue. When it finally tuns, the celery job first tries to load the object based on the ID provided. Initially I had issues doing a my_obj = MyModel.objects.get(pk=given_id) because the read replica would be used at this point, if the queue is empty and the celery job runs immediately after being triggered, the object may have not propagated to the read-replicas yet. I resolved that issue by replacing my_obj = MyModel.objects.get(pk=given_id) with my_obj = … -
Submit form with Django in function view and relate it to request.user
I needed to write a function view where I made some query and a form. My problem is that I can't figure out why the form can't be related to the request.user. views.py def kapcsolodasok(request): profile = Profile.objects.get(user=request.user) related_users = Profile.objects.filter(projekt=profile.projekt) context = { 'related_users': related_users, 'profile': profile, } if request.method == 'POST': kap_bar_01 = request.POST.get('kap_bar_01') kap_bar_02 = request.POST.get('kap_bar_02') kap_bar_03 = request.POST.get('kap_bar_03') kap_bar_04 = request.POST.get('kap_bar_04') kap_bar_05 = request.POST.get('kap_bar_05') kapcsolodasok = Kapcsolodasok(kap_bar_01=kap_bar_01, kap_bar_02=kap_bar_02, kap_bar_03=kap_bar_03, kap_bar_04=kap_bar_04, kap_bar_05=kap_bar_05) kapcsolodasok.save() def form_valid(self, form): form.instance.user_name = self.request.user return super().form_valid(form) return render(request, 'stressz/kapcsolodasok.html', context) models.py class Kapcsolodasok(models.Model): def __str__(self): return str(self.user_name) user_name = models.ForeignKey(User, on_delete=models.CASCADE, default=1) date = models.DateField(auto_now_add=True, auto_now=False, blank=True) kap_bar_01 = models.TextField(max_length=200) kap_bar_02 = models.TextField(max_length=200) kap_bar_03 = models.TextField(max_length=200) kap_bar_04 = models.TextField(max_length=200) kap_bar_05 = models.TextField(max_length=200) def get_absolute_url(self): return "/mpa/siker" class Projekt(models.Model): def __str__(self): return str(self.projekt) projekt = models.TextField(max_length=150) date = models.DateField(auto_now_add=True, auto_now=False, blank=True) class Profile(models.Model): def __str__(self): return str(self.user) user = models.OneToOneField(User, null=True, on_delete=models.CASCADE) date = models.DateField(auto_now_add=True, auto_now=False, blank=True) projekt = models.ForeignKey(Projekt, on_delete=models.CASCADE, default=3) @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() forms.py class KapcsolodasokForm(forms.ModelForm): class Meta: model = Kapcsolodasok fields = '__all__' I think the html is not necessary her. What am I doing wrong? … -
image dislay ubunto django nginx debug=False
hello in the deployment of my site the image only works if debug = True and I would like to use images without hosting in services bad experience thank you -
DataTable limited rows
I have data in my SQLite table and it has 985 rows, so I used DataTable to organise (searching and export to Pdf, CSV...), the problem is that the DataTable is limited rows and just shows the first 200 rows!. my code is <script> $(document).ready( function () { $('#table_id').DataTable({ dom: 'B<"clear">lfrtip', buttons: { name: 'primary', buttons: [ 'copy', 'csv', 'excel', 'pdf' ] } }); }); </script the data is stored in table Sqlite and in the HTML page: so what's the solution with? -
Bootstrap nav-brand disappears once navigating to a page other than index
I am new to Python, Django and Bootstrap and was wondering why the nav-brand disappears when I navigate to another page or view other than index. The nav-brand is an image source in my case and below is the following code for my base.html: <body> <nav class="navbar navbar-expand-lg navbar-light bg-light p-md-3"> <div class="container-fluid"> <a class="navbar-brand" href="{% url 'index' %}"> <img src="static/images/logo150x63_2_2DP.png" alt=""> </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarText"> <div class="mx-auto"> </div> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="{% url 'index' %}">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="{% url 'basic_portfolio:uniprojects' %}">University Projects</a> </li> <li class="nav-item"> <a class="nav-link" href="{% url 'basic_portfolio:contact' %}">Contact</a> </li> </ul> </div> </div> </nav> {% block content %} {% endblock %} The following is my views.py file: from django.shortcuts import render def index(request): return render(request, 'basic_portfolio/index.html') def uniprojects(request): return render(request, 'basic_portfolio/uniprojects.html') def contact(request): return render(request, 'basic_portfolio/contact.html') My project urls.py file: from django.contrib import admin from django.urls import path, include from basic_portfolio import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.index, name='index'), path('projects/', include('basic_portfolio.urls')), ] My app urls.py file: from django.urls import path, include from basic_portfolio import views app_name = 'basic_portfolio' urlpatterns = [ … -
Django: Associate a social account to currently logged on user
Basically: I want a user to be able to signup with their email and once authenticated they should be able to add a social account and for the social account to be linked(associated) to that currently authenticated user. The link should happen even if the emails are different (between user and social account). A social account cant be linked to more than one user. I am not really interested in user FB account data but rather I want access to their page(s) metrics. I am using Django with Django rest Framework. I also got a custom user model with email instead of username as key Below is my initial attempt (My most relevant part); File Structure [app]/ ├── [app]/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── facebook/ │ |── __init__.py | ├── urls.py | ├── serializer.py | └── views.py ├── manage.py ├── README.txt ├── static/ └── README Settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'whitenoise.runserver_nostatic', 'django.contrib.staticfiles', 'corsheaders', 'accounts', 'rest_framework', 'django_rest_passwordreset', 'social_django', 'facebook' ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'social_django.middleware.SocialAuthExceptionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] AUTHENTICATION_BACKENDS = ( 'social_core.backends.facebook.FacebookOAuth2', 'django.contrib.auth.backends.ModelBackend', ) ROOT_URLCONF = 'jicaBackend.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', … -
how to print attendence of all employee of a month if the attendence is on daily basis in django
I have a model named Attendance. I store the attendance of all employees of a month on daily basis. Now i want to print the attendance of employee in template in the formate EmpId name 1 2 3 4 5 ........................... 29 30 31. Like 2354 rajiv P P P A P P A P P .................................. P P A. First look at model class Attendence(models.Model): EmpId = models.IntegerField(verbose_name='EmpId') Name = models.CharField(max_length=50,verbose_name='Name') Site = models.CharField(max_length=50,verbose_name='Site') Days = models.DecimalField(max_digits=10,decimal_places=2,verbose_name='Days') Nh = models.IntegerField(verbose_name='Nh') SingleOt = models.DecimalField(max_digits=10,decimal_places=2,verbose_name='SingleOt',null=True) DoubleOt = models.DecimalField(max_digits=10,decimal_places=2,verbose_name='DobleOt',null=True) choices = [('P','Present'),('A','Absent'),('O','Off')] Status = models.CharField(choices=choices,blank = False,max_length=10,verbose_name='Status') AttendenceOn = models.DateField(default = timezone.now) def __str__(self): return '{EmpId}/{Name}/{date}'.format(EmpId=self.EmpId,Name=self.Name,date=self.AttendenceOn) to get my result accordingly i tried the follow code in function attendRegister in view.py def attendRegister(request): attendencelist = {} employee = [] if request.method == 'POST': datefrom = request.POST['DateFrom'] dateto = request.POST['DateTo'] attendencelist = Attendence.objects.filter(AttendenceOn__range=[datefrom,dateto],Site = str(request.user.SuperVisor.Site)).order_by('Name') Date__range = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31] context = { "attendencelist":attendencelist, "date":timezone.now(), "range":Date__range, } return render(request,"attendRegister.html",context) in template i tried the following process <div class="row"> <div class="col-sm-12"> <table class="table table-striped table-hover"> <thead> <tr class="bg-primary" style="color:white; font-size: 0.5rem;"> <th>id</th> <th>Name</th> {% for i in range%} <th>{{forloop.counter}}</th> {% endfor %} </thead> <tbody> {%for attendence in attendencelist%} <tr > <td>{{attendence.EmpId}}</td> <td>{{attendence.Name}}</td> {% if attendence.Status == … -
How to change template file of a PageModel for Preview mode?
I want to use wagtail as headless CMS, so I want the preview (for all pages) to load from the base.html file. Then I will deploy my React app on that file statically. I created the following Page Model class BlogPage(Page): # Database fields body = RichTextField() date = models.DateField("Post date") feed_image = models.ForeignKey( 'wagtailimages.Image', null=True, blank=True, on_delete=models.SET_NULL, related_name='+' ) # Search index configuration search_fields = Page.search_fields + [ index.SearchField('body'), index.FilterField('date'), ] # Editor panels configuration content_panels = Page.content_panels + [ FieldPanel('date'), FieldPanel('body', classname="full"), InlinePanel('related_links', label="Related links"), ] promote_panels = [ MultiFieldPanel(Page.promote_panels, "Common page configuration"), ImageChooserPanel('feed_image'), ] # Parent page / subpage type rules parent_page_types = ['home.HomePage'] subpage_types = [] When I want to preview a page that I created using this model I get the following error: TemplateDoesNotExist at /new-title/ home/blog_page.html Request Method: GET Request URL: http://localhost/new-title/ Django Version: 3.2.6 Exception Type: TemplateDoesNotExist Exception Value: home/blog_page.html Exception Location: My-Folder/.venv/lib/python3.7/site-packages/django/template/loader.py, line 19, in get_template Python Executable: My-Folder/.venv/bin/python Python Version: 3.7.5 Python Path: ['My-Folder/wagtail-react-website/wagtail_website', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', 'My-Folder/.venv/lib/python3.7/site-packages'] Server time: Thu, 02 Sep 2021 10:28:26 +0000 Template-loader postmortem Django tried loading these templates, in this order: Using engine django: django.template.loaders.filesystem.Loader: My-Folder/wagtail-react-website/wagtail_website/wagtail_website/templates/home/blog_page.html (Source does not exist) django.template.loaders.app_directories.Loader: My-Folder/wagtail-react-website/wagtail_website/home/templates/home/blog_page.html (Source does not exist) … -
fetch request resulting in error: Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window': Invalid name at HTMLInputElement.<anonymous>
Why am I getting this error? I am trying to fetch my index view to edit an object in one of my models. I don't really know what I am doing with sending the CSRF token in this way, I copied it from an example I found online, so I don't know if that is the problem. Code is below: function edit_post(post) { const content_div = document.getElementById(`post-body-${post.id}`); content_div.innerHTML = ""; const edit_form = document.createElement('div'); const form_input = document.createElement('input'); form_input.setAttribute('type', 'textarea'); form_input.setAttribute('name', 'post-body'); text_to_edit = post.body; form_input.setAttribute('value', text_to_edit); const save_button = document.createElement('input'); save_button.setAttribute('type', 'submit'); save_button.setAttribute('value', 'Save'); save_button.addEventListener('click', () => { const new_body = form_input.value; console.log(`${new_body}`); fetch('/', { method: 'PUT', headers: { 'X-CSRF TOKEN': getCookie("csrftoken") }, body: body = JSON.stringify({ post_id: post.id, new_body: new_body, }) }) .then(response => null) }); edit_form.append(form_input); edit_form.append(save_button); content_div.append(edit_form); } function getCookie(name) { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length == 2) return parts.pop().split(';').shift(); } -
Django Rest Framework admin panel not using custom User Manager
I have implemented a CustomUser and CustomUserManager in my DRF app. The tutorials I have followed are this one and this one, which are nearly identical approaches to creating a custom user and custom user manager. I placed a print statement in the create_user and create_superuser methods of the custom user manager to check it was being used correctly. class MyUserManager(BaseUserManager): def create_user(self, email, password, **extra_fields): print("manager used") ... When I use the command python manage.py addsuperuser, the print statement runs, great. When I use the built-in admin panel of the DRF framework localhost:8000/admin to create a new admin or regular user, the statement doesn't run, however, the user is created without error. As far as I can see, the implementation is meant to have the admin panel use the new customer user manager, but that doesn't seem to be the case. What have I done wrong? -
Can anyone please help/tell me what I am doing wrong? And/Or what I shouldve done in my queries?
I have 3 models that I am using my query on: Models.py class Student(models.Model): ... class SchoolPeriod(models.Model): period = models.CharField(max_length = 100) class StudentGrade(models.Model): student = models.ForeignKey(Student, on_delete=models.CASCADE,) period = models.ForeignKey(SchoolPeriod, ...) subjects = models.ForeignKey(Subject, on_delete=models.CASCADE) grade = models.DecimalField(default = 75.00, max_digits=4, decimal_places=2) Views.py def viewgrade(request): current_parent = request.user.parent #gets current logged in parent tempstudent = Student.objects.get(parent = current_parent ) #gets student related to parent(theres no student user level) studentgrade = StudentGrade.objects.filter(student = tempstudent) #filters the grades of the student related to the parent logged in ... context = { ... 'studentgrade': studentgrade, } return render(request, 'Information/viewgrade.html', context) viewgrade.html(template) <table style="width:50%"> <tr> <th>Subject</th> <th>Grade</th> </tr> {% for studentgrade in studentgrade %} <tr> <td>{{ studentgrade.subjects }}</td> <td>{{ studentgrade.grade }}</td> </tr> {% endfor %} </table> What I can do was to print on my template the grades of the STUDENT that is related to the PARENT that is currently logged in. But, I also want to arrange it per grading period(quarter) example: **first grading** Science = 99 Math = 99 **second grading** Science = 70 Match = 70 Thanks for the help! -
JSQuery: How to add and retrieve column attributes?
I'm reading a table from my database using JQuery and I want to create a data type attribute by column in order to perform certain operations by column. So far, I have the following: var table = $('#maintable').DataTable({ "ajax": { "type": "GET", "url": "/cvs/PDFeditor/request/", "data": function(d) { d.placeholder = "asdf"; } }, "columns": [{ "className": 'edit-control', "orderable": false, "data": null, "width": "12px", "defaultContent": '<button type="button" class="btn btn-sm btn-primary"><span class="glyphicon glyphicon-edit"></span></button>' }, { "className": 'delete-control', "orderable": false, "data": null, "width": "12px", "defaultContent": '<button type="button" class="btn btn-sm btn-danger"><span class="glyphicon glyphicon-minus-sign"></span></button>' }, { "data": "investor", "class": 'inv-editable', "data-type": 'investor' }, { "data": "amount", "type": "num-fmt", "class": 'inv-editable', "data-type": 'amount' }, { "data": "code", "class": 'inv-editable', "data-type": 'code' } ], "pageLength": 15, "order": [ [5, "desc"] ] }); My purpose is to store the "data-type" attribute into a variable to update the column in the database prior: $('#maintable tbody').on('dblclick', '.inv-editable', function() { var value = $(this).text(); var data_type = $(this).data("type") if (data_type == 'investor') { var input = "<input type = 'text' class = 'input-data' value ='" + value + "' class='form-control' type="investor">"; } else if (data_type == 'amount') { var input = "<input type = 'text' class = 'input-data' value ='" + value … -
How to get latest position in Django's related model with prefetch_related
I've been trying to get the latest promotion of an employee based on the effective date in the EmployeePosition model which has a many-to-one relation with and Employee model. Based on my research, I've found a way to prefetch the data, but I get multiple results as i can't figure out how to filter our the values from the effective date. Here are the models: class Employee(models.Model): SENIOR = 'Sr' JUNIOR = 'Jr' FIRST = 'I' SECOND = 'II' THIRD = 'III' GENERATIONAL_SUFFIX = [ (SENIOR, 'Senior'), (JUNIOR, 'Junior'), (FIRST, 'First'), (SECOND, 'Second'), (THIRD, 'Third'), ] MALE = 'male' FEMALE = 'female' OTHER = 'other' SEX = [ (MALE, 'Male'), (FEMALE, 'Female'), (OTHER, 'Other'), ] user = models.OneToOneField(User, on_delete=models.CASCADE) phone_regex = RegexValidator(regex=r'^\d{11}$', message="Phone number must be entered in the format: '09151234567'.") phone_number = models.CharField(validators=[phone_regex], max_length=11, blank=True) middle_name = models.CharField(max_length=20, blank=True) sex = models.CharField(max_length=6, choices=SEX, blank=True) suffix = models.CharField(max_length=3, choices=GENERATIONAL_SUFFIX, blank=True) birthday = models.DateField(null=True, blank=True) hire_date = models.DateField(null=True, blank=True) image = models.ImageField(blank=True, default='blank_profile_picture.jpg') slug = models.SlugField(max_length=60, blank=True, null=True) updated = models.DateTimeField(auto_now=True) @property def get_full_name(self): first_name = self.user.first_name middle_name = self.middle_name last_name = self.user.last_name if middle_name is None: full_name = f'{first_name}{" "}{last_name}' return full_name else: full_name = f'{first_name}{" "}{middle_name}{" "}{last_name}' return full_name … -
How does Django know to call the index?
I just started learning Django and I am a bit confused. I'm following the official documentation and this is the code: mysite/urls.py from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ] polls/views.py from django.http import HttpResponse from django.conf import settings from django.shortcuts import render from django.views import View def index(request): return HttpResponse("Hello, world. You're at the polls index.") polls/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] I am mainly confused that if I add more functions in polls/views.py, how will using inclde('polls.urls') know that I wish to call the index function or some other function? Link for the documentation page that I am following: https://docs.djangoproject.com/en/3.2/intro/tutorial01/ -
How to use spreadsheet to show excel file with multiple sheet in django?
I'm working on a project and I need to present data in web page from excel with multiple sheets (multiple documents). Is it possible with this https://datatables.net/ and how? I have tried with this but something is wrong, only get me confused. I wasn't able to run the example that they have been prepared. Any ideas how to present excel document with multiple sheets online with django? Any other ideas are welcome -
Filtering django admin inline - limit the choices list
Given my inline admin: class TestInlineAdmin(admin.TabularInline): model = Test.questions.through extra = 0 and then class QuestionAdmin(admin.ModelAdmin): inlines = [TestInlineAdmin, ] Test model has question field which is ManyToMany. And i am normally able to edit the question list directly from Test model. But i want to be able to choose the Tests from inline admin within QuestionAdmin (so, in reverse). This works. But i need to filter the Test objects in this inline, so the list of choices would show me only Test.objects.filter(applicable=False). I've tried to use get_queryset, but this seems to have no effect on the choice list, it's only filtering the the actual referenced items in inline, but the list of choices for the new item always shows me the complete unfiltered queryset for Test model. Overriding formfield_for_manytomany does not work in inline - it's not executed at all. Would it be possible somehow with formfield_overrides? Or, as i believe the only way would be to customize the inline form? -
why it tell me 'str' object has no attribute 'append'?
`from django.shortcuts import render from django.http import HttpResponse from django import forms Create your views here. class NewTaskForm(forms.Form): task = forms.CharField(label = "New Task") task = ["foo", "bar", "taz"] def index(request): return render(request, "task/index.html", { "task" : task }) def add(request): if request.method == "POST": form = NewTaskForm(request.POST) if form.is_valid(): task = form.cleaned_data["task"] task.append('task') else: return render (request, "task/add.html",{ "form" : form }) return render(request, "task/add.html", { "form" : NewTaskForm() }) ` -
jQuery $.load Not Executing
I am currently using jQuery on my Django site to reload a div once a user clicks a button. $(document).ready(function(){ var post_list = Array.from(document.getElementsByClassName("post_container")) for(var post in post_list){ post_list[post].id = 'post' + post; } var $arrows = $(".arrow"); $arrows.each(function(index){ var data = $(this).data(); var element = $(this); element.on('click', function(event){ if(user_auth){ var currentParentElement = element.parent().parent().parent().get(0); var id = $(currentParentElement).attr('id'); $(id).load(document.URL + ' ' + id); } }) }) }); From the console I can see that currentParentElement and id are pointing to the correct div to reload, but $(id).load() does not seem to be doing anything. In the image linked below, the clicking the arrow buttons should make the green or red number change. The number does not change when the arrow is clicked, but it does change when I reload the entire page. https://i.stack.imgur.com/T26wn.png -
Django test case with invalid URL but giving 200
when run develop server (py manage.py runserver), and user browser with url "localhost:8000//index.html", it is giving 404. but when run test, client.get('//index.html') is 200, and content is same as request to ('/'). when run develop server, using py manage.py shell, then from django.test import Client, directly run is same result. so is it an issue of Client.get() function? or I am using it wrongly? def test_invalid_url2(self): response=self.client.get('//index.html') self.assertEqual(response.status_code, 404) -
Get data non form data from post request in django
I try to submit data on change and change the response from the view based on the data from the POST request. $.ajax({ url: $basicAnalysisChart.data("url"), type: "POST", headers:{ "X-CSRFToken": csrftoken }, dataType: "json", contentType: 'application/json; charset=utf-8', data:{ selector1:$("#Select1").val(), selector2:$("#Select2").val() }, i tried getting to that data in my view with request.POST.get("Select1", "") and request.POST.get("selector1", "") but cant get it working. -
OSError: no library called "cairo" was found // raise OSError(error_message)
raise OSError(error_message) # pragma: no cover OSError: no library called "cairo" was found no library called "libcairo-2" was found cannot load library 'libcairo.so.2': error 0x7e cannot load library 'libcairo.2.dylib': error 0x7e cannot load library 'libcairo-2.dll': error 0x7e for filename in filenames: try: return ffi.dlopen(filename) except OSError as exception: exceptions.append(exception) error_message = '\n'.join( str(exception) for exception in exceptions) raise OSError(error_message) cairo = dlopen( ffi, ('cairo', 'libcairo-2'), ('libcairo.so.2', 'libcairo.2.dylib', 'libcairo-2.dll')) -
Cannot test equality of rest_framework.utils.serializer_helpers.ReturnList while testing
Being new to django rest framework, I tried to make a simple unittest to test a simple search api endpoint. However, when I try to test the equality of the response data and the expected result, assertEqual always returns False when in fact it's the same result. Here is the test class # imports... client = APIClient() User = get_user_model() class SearchTest(APITestCase): def setUp(self): landlord = User.objects.create_user("a@a.com", "testuser", "firstname", "lastname", "password") self.test1_listing = Listing.objects.create(name="test1", place="Pinekarta", adult_guests=2, landlord=landlord) self.test2_listing = Listing.objects.create(name="test2", place="Pinekarta", landlord=landlord) self.test3_listing = Listing.objects.create(name="test3", place="New Bannkarta", landlord=landlord) def test_valid_place(self): response = client.get(reverse('api-search', kwargs={'place': "New Bannkarta"}), format='json') result = DetailedListingSerializer(instance=[self.test3_listing], many=True).data print(type(result)) print(type(response.data)) self.assertEqual(response.data, result) Although result and response.data have the same type and their string representation is the same, for some reason assertEqual always fails. self.assertEqual(response.data, result) AssertionError: [Orde[690 chars]ber_of_comments', 0), ('comments', []), ('avg_rating', None)])] != [Orde[690 chars]ber_of_comments', 0), ('comments', []), ('avg_rating', None)])]