Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Creating a chart from sentiments of user tweets using chart.js
I’m new to Django. I’m currently doing sentiment analysis on real-time user tweets via Twitter API. I have managed to do the analysis and display the sentiments. Now, I want to visualize the sentiments using charts in my Django app (perhaps bar chart or pie chart) but I’m not sure how. I was thinking of using Chart.js to make it responsive but most of the examples are using static data so I wasn’t successful in integrating my data where I extracted from Twitter API with chart.js. This is a screenshot of my web page. The table was the extracted tweets with their corresponding sentiments. The bar chart however is just static data. I don't know how to convert it into json. enter image description here this is my views.py from django.http.response import JsonResponse from django.shortcuts import render, redirect, HttpResponse from .forms import Sentiment_Typed_Tweet_analyse_form from .sentiment_analysis_code import sentiment_analysis_code from .forms import Sentiment_Imported_Tweet_analyse_form from .tweepy_sentiment import Import_tweet_sentiment from django.contrib.auth.decorators import login_required from django.contrib import messages def sentiment_analysis_import(request): if request.method == 'POST': form = Sentiment_Imported_Tweet_analyse_form(request.POST) tweet_text = Import_tweet_sentiment() analyse = sentiment_analysis_code() if form.is_valid(): handle = form.cleaned_data['sentiment_imported_tweet'] # messages.info(request, 'It might take a while to load the data.') if handle[0]!='#': list_of_tweets = tweet_text.get_hashtag(handle) list_of_tweets_and_sentiments … -
why showing error page is not found while using /<pk>/?
urls.py I tryed allot but can not fond why this happened when I apply or it is always showing the same error from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('nature', views.nature, name ='nature'), path('', views.index, name ='index'), path('footer', views.footer, name ='footer'), path('navebar', views.navebar, name ='navebar'), path('form', views.form, name ='form'), path('venue', views.venue, name ='venue'), path('db/<db_id>/', views.db, name ='db'), views.py from django.shortcuts import render def db(request, db_id): all = Task.objects.get(pk= db_id) return render(request,'MYapp/db.html',{'all': all}) -
Duplicate Django model with nested children
I have a model with nested children and want to duplicate it, I tried some solutions but couldn't solve my problem! here are my models to show the relationships between them: class Form(models.Model): form_id = models.UUIDField(primary_key=True, default=uuid4, editable=False) form_title = models.CharField(max_length=100) class Page(models.Model): page_id = models.UUIDField(primary_key=True, default=uuid4, editable=False) page_title = models.CharField(max_length=100) form = models.ForeignKey(Form, related_name='pages') class Section(models.Model): section_id = models.UUIDField(primary_key=True, default=uuid4, editable=False) section_title = models.CharField(max_length=100) page = models.ForeignKey(Page, related_name='sections') class Question(models.Model): question_id = models.UUIDField(primary_key=True, default=uuid4, editable=False) question_title = models.CharField(max_length=100) section = models.ForeignKey(Section, related_name='questions') class Answer(models.Model): answer_id = models.UUIDField(primary_key=True, default=uuid4, editable=False) answer_value = models.TextField(blank=True) question = models.OneToOneField(Question, related_name="question") I used this solution, I could duplicate the form and pages but couldn't go next for duplicating other children! class DuplicateFormAPI(views.APIView): def get(self, request, form_id): form = Form.objects.filter(form_id=form_id).first() form.form_id = None form.save() duplicated_form_id = FormSerializer(form).data.get('form_id') pages = Page.objects.filter(form_id=form_id).all() for page in pages: page.page_id = None page.form_id = duplicated_form_id page.save() return Response({ "status": status.HTTP_200_OK, "message": "Form duplicated successfully!", "form": FormSerializer(form).data, }) Anyone could help or give me some hints? -
django-filter shows all fields instead of just the ones specified
In my filters.py: class DataFilter(FilterSet): start_date = DateFilter(field_name='date',lookup_expr=('lt'),) end_date = DateFilter(field_name='date',lookup_expr=('gt')) date_range = DateRangeFilter(name='date') class Meta: model = DataModel fields = ['date', ] I have also tried setting fields = [], but filters of all fields are still there. Why is it showing all even I just only specified one (even none)? And how to fix that? Can anyone help explain? Thank you! In my models.py: class DataModel(models.Model): date = models.DateField(default=now) other_field_1 = models.CharField() other_field_2 = models.CharField() other_field_3 = models.CharField() In my views.py: class DataModelListView(LoginRequiredMixin, FilterView): model = DataModel template_name = 'datamodel_list.html' filter_class = DataFilter I am using django 3, django-filter 21. -
Acess dictionary value in template
I have a list view where I define queryset as a list of objects if current user is not a top manager otherwise queryset is a dictionary with key being employee and value being list of objects. So I want to know how to display the key from this dict and then list it's value - a list. I tried to do it like that <ul> {% for k, v in employees_list.items %} <li><a href="{% url 'employees:employees-detail' pk=v.pk %}"> {{ v.title }} {{ v.last_name }} {{ v.first_name }}</a></li> {% endfor %} </ul> It didn't work out. Here's the view class EmployeesListView(LoginRequiredMixin, ListView): model = Employees template_name = 'employees/employees_list.html' context_object_name = 'employees_list' fields = ['last_name', 'first_name', 'title', 'birth_date', 'reports_to'] is_top_manager = False def get_queryset(self): #current_emp = get_current_users_employee(self.request.user) #return super().get_queryset().filter(reports_to=current_emp) current_emp = get_current_users_employee(self.request.user) this_employees_subordinates = Employees.objects.filter(reports_to=current_emp) if str(current_emp.title) != "Top manager": return this_employees_subordinates else: self.is_top_manager = True print("this user is top manager") lower_level_subordinates = {} for subordinate in this_employees_subordinates: lower_level_subordinates[subordinate] = Employees.objects.select_related('title').filter(reports_to=subordinate) print(lower_level_subordinates) return lower_level_subordinates -
Reverse for 'db' with arguments '('',)' not found. 1 pattern(s) tried: ['db/(?P<db_id>[^/]+)/$']
when I am trying to grab items from db.html with the help of id it is showing an error I cant understand where is the problem please help me out venue.html {% extends 'MYapp/index.html' %} {% block content %} <center> <h1> venue.html </h1> <br> <div class="card-header"> Featured </div> <div class="card-body container-fluid"> <h5 class="card-title">Special title treatment</h5> {% for venues in venue_list %} <p class="card-text container-fluid"> <a href="{% url 'db' all.id %}"> {{ venues }} {{ venues.lastname}}</a> {% endfor %} </p> </div> </center> {% endblock %} views.py from django.shortcuts import render from django.http import * from MYapp.models import * from .form import * def index(request): return render(request,'MYapp/index.html') def venue(request): venue_list = Task.objects.all() return render(request,'MYapp/venue.html',{'venue_list': venue_list}) def db(request, db_id): all = Task.objects.get(pk= db_id) return render(request,'MYapp/db.html',{'all': all}) urls.py another error occers hear it is showing page is not found because of this path('db/<db_id>/', views.db, name ='db'), from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('nature', views.nature, name ='nature'), path('', views.index, name ='index'), path('footer', views.footer, name ='footer'), path('navebar', views.navebar, name ='navebar'), path('form', views.form, name ='form'), path('venue', views.venue, name ='venue'), path('db/<db_id>/', views.db, name ='db'), ] -
DJANGO : How to iterate a ListView items to convert in cards
I am coding an app "dash" how a startpoint to many users. "a applications dashboard". I want to convert the list of applications in cards, "portfolio style". the user login in the platform, and in the url .../dash open the dash(django app). To here it's perfect. with the generic view - ListView - we obtain the list of applications will be available in the platform (if exist in the model, the application it's installed and available to the user) urls.py: path('dash/', views.ListView_Dash_Apps.as_view()), views.py: class ListView_Dash_Apps(ListView): template_name = "dash/ListarAplicaciones.html" model = App and in the html template, How to iterate the columns of the object_list??? with this i can iterate the rows, but not the column, i receive the str output declarated in the model. <ul> {% for e in object_list %} <li>{{ e }}</li> {% endfor %} </ul> If i can to read the columns data and include in the html (App, url_app, icon, etc etc..) -
Django and CKEditor as a template
Is it possible to use db variables in ckeditor? for example: My name is : {{ form.name }} My age is : {{ form.age }} and then i can render the ckeditor entry as a template populated by the model. All advice would be appreciated. Thanks. -
django filter on a large list- giving incorrect count or syntax error on ms sql- filtering in chunks is very slow
I am trying to filter records from a model using a list of values: Sample: items= ['a@xyz.com','b@xyz.com','c@abc.com'.......] data= TestModel.objects.filter(email__in=items) items contains more than 2000 entries and the database being used in SQL. To avoid count incorrect error: I tried: data= TestModel.objects.all() chunks = [items[x:x+1000] for x in range(0, len(items), 1000)] for chunk in chunks: chunk_data=Testmodel.objects.filter(email__in=set(chunk)) data= data | chunk_data return data I am not sure if this is the right approach and also the results are very slow. Any suggestions if there is a proper work around to filter data using a large list in django? -
How do I migrate vieys.py file without exceptions?
when Im trying to migrate my my .py file I'm facing an error "^ if request.method == 'POST' SYNTAX ERROR : Invalid character in Identifier error" this is my code def register(request): registered = False if request.method() == 'POST': user_form = UserForm(data=request.POST) profile_form = UserProfileInfoForm(data=request.POST) # Check to see both forms are valid if user_form.is_valid() and profile_form.is_valid(): # Save User Form to Database user = user_form.save() # Hash the password user.set_password(user.password) # Update with Hashed password user.save() # Now we deal with the extra in # Can't commit yet because we still need to manipulate profile = profile_form.save(commit=False) # Set One to One relationship between # UserForm and UserProfileInfoForm profile.user = user # Check if they provided a profile picture if 'profile_pic' in request.FILES: print('found it') # If yes, then grab it from the POST form reply profile.profile_pic = request.FILES['profile_pic'] # Now save model profile.save() # Registration Successful! registered = True else: # One of the forms was invalid if this else gets called. print(user_form.errors,profile_form.errors) else: # Was not an HTTP post so we just render the forms as blank. user_form = UserForm() profile_form = UserProfileInfoForm() # This is the render and context dictionary to feed # back to the … -
Add percent(%) sign in the Django URL
I'm doing API migration part where I have URL with % sign in it. However I want to do the same URL mapping with the Django API URL. I have tried with creating space and also tried creating % sign.I'm getting only 404 URL not matching How could I able to achieve it error msg: The current path, api/Data/CurrentRunningActivity2/10|checkrequest, didn't match any of these. existing .net API URL: http://localhost:1400/api/Data/CurrentRunningActivity2/10%7Ccheckrequest To Django URL: Here I have used space to created percent sign in front of 7Ccheckrequest path('Data/CurrentRunningActivity2/<int:implementor> 7Ccheckrequest', CurrentRunningActivityView2, name='CurrentRunningActivity2'), -
When I search useing SearchRank, if it does not find anything, it returns everything
When I search using SearchRank, if it does not find anything, it returns everything. How can I fix this problem? views : self.search = form.cleaned_data['search'] vector = SearchVector('title', weight='A') + SearchVector('description', weight='C') + SearchVector('category', weight='B') query = SearchQuery(self.search) self.results = post.annotate(rank=SearchRank(vector, query)).order_by('-rank') -
Django How to add loop column in model from another model
I want to add each City name in models A data to models B table Column name. When I add a new City is it possible to add and update the model B table? class ModelA(models.Model): city_name = models.CharField(max_length=50) def __str__(self): return f"{self.city_name}" class ModelB(models.Model): for eachCity in ModelA: code = eachCity.city_name code = models.CharField(max_length=200, blank=True, null=True) def __str__(self): return f"{self.options}" -
How to require an additional charge for the first-time users in stripe subscription?
I am building a Saas project. This system has several pricing plans. The first-time users should pay an additional amount of money. This money is charged only once per account and is not required anymore after the user paid once regardless of the purchased plan. It seems Stripe have no such option. And if I use the normal checkout method and subscription method together, the user should pay twice the first time. This is bad for the user experience. I would be appreciate if you could help me to solve this problem. In addition, I am using Django+React for the project. -
Django - Join between models and only get `url` field of ImageField attribute of one of the joined models
I have this class called User, which has an ImageField attribute, which stores the user's avatar/profile picture. I'm trying to annotate a Post query set so that just the user's avatar url gets returned with the post none of the other data. I've tried 2 different ways to annotate the query, but get errors as you can see below when I ping the views to get posts. How do I attach user avatar url with the return annotated Post query set? models.py class User(AbstractDatesModel): uuid = models.UUIDField(primary_key=True) username = models.CharField(max_length=USERNAME_MAX_LEN, unique=True, validators=[ MinLengthValidator(USERNAME_MIN_LEN)]) created = models.DateTimeField('Created at', auto_now_add=True) updated_at = models.DateTimeField('Last updated at', auto_now=True, blank=True, null=True) avatar = models.ImageField(upload_to=avatar_directory_path, blank=True, null=True) @property def avatar_url(self): return self.avatar.url class Post(models.Model): uuid = models.UUIDField(primary_key=True, default=generate_ulid_as_uuid, editable=False) created = models.DateTimeField('Created at', auto_now_add=True) updated_at = models.DateTimeField('Last updated at', auto_now=True, blank=True, null=True) creator = models.ForeignKey( User, on_delete=models.CASCADE, related_name="post_creator") body = models.CharField(max_length=POST_MAX_LEN, validators=[MinLengthValidator(POST_MIN_LEN)]) annotator.py def query_to_full_post_data_serializer(post_query_set: QuerySet): query_set_annotated = post_query_set.annotate( creator_username=F('creator__username'), creator_avatar_url=F('creator__avatar_url') ) return FullPostDataSerializer(query_set_annotated, many=True) annotator_version_2.py def query_to_full_post_data_serializer(post_query_set: QuerySet): query_set_annotated = post_query_set.annotate( creator_username=F('creator__username'), creator_avatar_url=F('creator__avatar__url') ) return FullPostDataSerializer(query_set_annotated, many=True) annotator.py gives the error: django.core.exceptions.FieldError: Cannot resolve keyword 'avatar_url' into field. Choices are: avatar, cheer_post, cheer_reply, created, creator_username, followee_id, follower_id, friendship_creator, friendshiprequest, goal_creator, goal_follow, goal_join, post_creator, reply, updated_at, … -
Is there a Django library that automatically display local currency based on a visitors country IP address
I'm trying to integrate a functionality on an Ecommerce website in Django, Where victors are automatically shown local currency base on their country IP address, Is there any library that i can use to achieve this functionality. what is the best way to write a function view or class base view to accomplish this fit. Is it possible to have the manipulations of the currency on one template ? -
How to combine Celery with asyncio to handle HTTP requests asynchronously?
How to receive async HTTP requests and process the requests asynchronously using celery? Here is what I have tried, is this the right way to combine async with celery so I can receive async HTTP requests and process them asynchronously The url is: urlpatterns = [ path('api/example/', example, name='example'), ] The views.py is async def example(request): res = await process_data(request) json_data = json.loads(res.content) return render(request, "index.html", {"task_id": json_data["task_id"], "task_status": json_data["task_status"]}) async def process_data(request): result = some_CPU_heavy_function.delay("yes") return JsonResponse({"task_id": result.id, "task_status": result.status}, status=status.HTTP_200_OK) @shared_task def some_CPU_heavy_function(some_data): return {"reply": "yes"} And the command from Docker is command: gunicorn server.asgi:application --bind 0.0.0.0:8000 -w 17 -k uvicorn.workers.UvicornWorker -
How to connect MySQL with Django SQLalchemy?
I'm trying to connect Django app with MySQL, My model: **models.py** from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, DateTime from sqlalchemy.orm import relationship from sqlalchemy.orm import sessionmaker engine = create_engine('mysql://root:root0000@localhost', echo=True) Base = declarative_base() Session = sessionmaker(bind=engine) Session.configure(bind=engine) session = Session() class School(Base): __tablename__ = 'schools' id = Column(Integer, primary_key=True) title = Column(String) address = Column(String) created = Column(DateTime(timezone=True), server_default=func.now()) My Controller: views.py class SchoolViewSet(ViewSet): query = models.session.query(models.School).all() def list(self, request): return Response(self.query) Getting this error: in raise_mysql_exception raise errorclass(errno, errval) sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1046, 'No database selected') -
deploying multiple dockerized django backend + ReactJS front end app in Apache2 Linux
I've built 2 demo applications for a client using Django as backend and ReactJS frontend as asked by client. These apps are working fine in Dockerized way, running fine using Database based user login credentials. They however want to move authentication to their official LDAP, which is where I'm kind of lost. the target server is Red Hat, where we've different containers for backend/frontend. We're asked to use Apache2 web server, kerberos for authenticating against ldap. After authentication, further steps will take place e.g. fetching data using API layer. Rough diagram of the system is as following. At the moment django backend,Fast API server, React frontend, Apache are running in separate docker containers. I am unable to get past Apache2 setup in first place, I've setup kerberos and kdc file and stored in mapped volume to which Apache2 docker points to. when I hit my Account App URL, I'm seeing a popup login page instead of my own Login page. Here the client rightfully expects that login should occur automatically as users are logged in to their office network. When I submit my AD login name and password, I'm getting error stating improper kdc file format. Accounts and HR system … -
Join request in django between three tables and display all attributes
I have three models class A(models.Model): field1 = models.IntegerField() class B(models.Model): id_a = models.ForeignKey(A,on_delete=models.CASCADE) field1 = models.IntegerField() field2 = models.IntegerField() class C(models.Model): id_a = models.ForeignKey(A,on_delete=models.CASCADE) field1 = models.IntegerField() field2 = models.IntegerField() I want to write a request that looks like this: SELECT * FROM B,C,A WHERE B.id_a=C.id_a WHERE A.id_a=2 and display all the attributes of the two tablesHere is what I tried to do: a_id_att = 1 data = B.objects.filter(id_a=C.objects.filter(id_a=a_id_att)[0]) It does not work. How to write the join and make to display all the attributes of the tables? -
How to use patch with (from django.views.generic import View)
What patch method do I use while creating an API with the View , (from django.views.generic import View) Suppose I have a class like this : from django.views.generic import View class ArticleView(View): def patch(self, request, article_id, *args, **kwargs): # How can I patch data here pass def get(self, request, *args, **kwargs): pass def put(self, request, *args, **kwargs): pass -
how to update / replace a file in a Django FileField()
I have a Django model that holds a file like so: class Excel(models.Model): the_generated_file = models.FileField() I know want to access this file with an updated version of the file. If this was a int, foat or Json field etc I could use something like: File_to_update = Excel.objects.all() File_to_update.update(the_generated_file = my_new_excel_previously_defined) But for some reason as it is of type FiledField() there is no update operation. How can I replace the old file with a new file? -
Django how to get 0 instead of null
I'm filtering a query set to get the number of visitors and pageviews but when there is no data it returns None. How to get 0 instead of None when filtering a queryset when there is no data? yesterday_visitors = queryset.filter(date__gte=yesterday, page=None).aggregate(Sum('visitors')) yesterday_page_views = queryset.filter(date__gte=yesterday, page=None).aggregate(Sum('page_views')) -
How to register specific column(field) in models.py file in admin
this is my model i like to register field 'tag' in admin.py file class Content(models.Model): id=models.AutoField(primary_key=True) user=models.ForeignKey(User,on_delete=models.CASCADE) content_type = models.CharField(max_length=255) # show=models.CharField(max_length=255) show=models.ForeignKey(Show,on_delete=models.CASCADE) sponsor_link=models.CharField(max_length=255) status=models.BooleanField(default=False) added_on=models.DateTimeField(null=True) content_file=models.FileField(upload_to='media/') title = models.CharField(max_length=255) shows_name = models.CharField(max_length=255) subtitle = models.CharField(max_length=255) description = models.CharField(max_length=500) publish_now = models.BooleanField(default=False) schedule_release = models.DateField(null=True) expiration = models.DateField(null=True) tag = models.CharField(max_length=255) category = models.CharField(max_length=255) topic = models.CharField(max_length=255) def __str__(self): return self.title I've used tagset = Content.objects.all() def content_register(): for a in tagset: admin.site.register(a.tag) content_register() But i get this error AttributeError: 'str' object has no attribute '_meta' can anyone help me here -
how to get username form django session
i am trying to get user name from session by using request.user but i am getting AnonymousUser, how do i get user name def login_two(request): if request.method == 'POST': uname = request.POST.get('name2') pwd = request.POST.get('password2') check_user = User.objects.filter(username=uname, password=pwd) if check_user: request.session['user'] = uname return redirect('index') return render(request, 'login2.html') models.py class User(models.Model): username = models.CharField(max_length=30) password = models.CharField(max_length=50)