Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django model objects became not hashable after upgrading to django 2.2
I'm testing the update of an application from Django 2.1.7 to 2.2.12. I got an error when running my unit tests, which boils down to a model object not being hashable : Station.objects.all().delete() py37\lib\site-packages\django\db\models\query.py:710: in delete collector.collect(del_query) py37\lib\site-packages\django\db\models\deletion.py:192: in collect reverse_dependency=reverse_dependency) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <django.db.models.deletion.Collector object at 0x000001EC78243E80> objs = <QuerySet [<Station(nom='DUNKERQUE')>, <Station(nom='STATION1')>, <Station(nom='STATION2')>]>, source = None, nullable = False reverse_dependency = False def add(self, objs, source=None, nullable=False, reverse_dependency=False): """ Add 'objs' to the collection of objects to be deleted. If the call is the result of a cascade, 'source' should be the model that caused it, and 'nullable' should be set to True if the relation can be null. Return a list of all objects that were not already collected. """ if not objs: return [] new_objs = [] model = objs[0].__class__ … -
Django paginator sorting page is not work
i use Paginator. First page comes sorted. But when go two or other pages sorting is broken. I use this code; def mostviewdaily(request): poll = Poll.objects.filter(created_date__gte=datetime.now() - timedelta(hours=24)).order_by('-totalvotes') paginator = Paginator(poll, 30) page = request.GET.get('page') poll = paginator.get_page(page) yorumlar = Comment.objects.all() return render(request, "poll/popular.html", {"poll": poll,"yorumlar": yorumlar, }) {% if poll.has_previous %} <li class="page-item"> <a class="page-link" href="&page=1">first</a> </li> <li class="page-item"> <a class="page-link" href="&page={{ poll.previous_page_number }}">previous</a> </li> {% endif %} {% for l in poll.paginator.page_range %} {% if l <= poll.number|add:1 and l >= poll.number|add:-1 %} <li class="page-item"><a class="page-link" href="?page={{ forloop.counter }}">{{ forloop.counter }}</a></li> {% endif %} {% endfor %} {% if poll.has_next %} <li class="page-item"> <a class="page-link" href="?results={{ query }}&page={{ poll.next_page_number }}">next</a> </li> <li class="page-item"> <a class="page-link" href="?results={{ query }}&page={{ poll.paginator.num_pages }}">last</a> </li> {% endif %} How can i solve this? Thanks -
Request.Post method not working properly in django
I building quiz app. i creted 3 model Quiz , Question ,Answer Question is linked with Quiz by foreign key and Answer is linked with Question.i provided boolean field to the answer. I created radio button but its not wotking . it showing error : MultiValueDictKeyError at /quiz/2/11/ 'choice' views.py def question_detail(request,question_id,quiz_id): q = Quiz.objects.get(pk=quiz_id) que = Question.objects.get(pk=question_id) ans = que.answer_set.all() selected_choice = que.answer_set.get(pk=request.POST['choice']) if selected_choice is True: come = que.rank came = come + 1 later_question = q.question_set.get(rank=came) return render(request,'app/question_detail.html',{'que':que , 'later_question':later_question, 'ans':ans}) else: come = que.rank later_question = q.question_set.get(rank=come) return render(request, 'app/question_detail.html', {'que': que, 'later_question': later_question, 'ans': ans}) question_detail.html <form action="{% 'app:detail' quiz_id=quiz.id question_id=que.id %}" method="post"> {% csrf_token %} {% for choice in que.answer_set.all %} <input type="radio" name="choice" id="choice{{forloop.counter}}" value="{{choice.id}}"> <label for="choice{{forloop.counter}}">{{choice.answer}}</label> {% endfor %} -
How do I edit an entered data in django directly on the webpage. For eg- like in a todo app
No code for this question. I am asking this for general use in various applications -
Flask - get separates values in different sessions variables
Good day everyone, for this script I'm trying to get single values from a SQL query and store them in different session variables. I've tried to print it but I get an error : TypeError: 'ResultProxy' object is not subscriptable @app.route("/login", methods=['GET', 'POST']) def login(): if request.method == "POST": username = request.form.get("username") password = request.form.get("password") query = db.execute("SELECT * FROM accounts WHERE username = :username and password = :password", { "username": username, "password": password}) usuario = query session['id']= usuario[0] session[usuario]=usuario[1] print(session['id']) return render_template("/index.html") How can I get it to work? Let me know your responses. Thanks!!! -
Django ORM: annotate a queryset with a specific value stored in a JSONField
I would like to "annotate" a queryset (related to a model that could be called My_Model_A) with values stored in a JSONField (let's call it coefficients) of a specific instance of another model (My_Model_B). For instance, the value of coefficients could be {"6500":1, "7201":2, "2003":1.5} where 6500, 7201 and 2003 are primary keys of My_Model_A instances that I want to gather in a queryset. In that specific case, I would like to be able to easily access the values 1, 2, 1.5 in my Django QuerySet object. Concretely, what I am currently doing is this: coefficients = My_Model_B.objects.latest().coefficients # JSONField results = My_Model_A.objects.filter(pk__in=coefficients).values('pk', 'name') results = list(results) for result in results: result['coefficient']=coefficients[result['pk']] However, I guess there is a more efficient way to do that and to avoid this "for" loop, especially for big querysets. Any help appreciated. Thank you in advance! -
How to set headers in DRF's APIClient() delete() request?
When running tests, I'd like to create and then delete some resources. Access to the target server requires authenticating with a token. from django.test import TestCase from rest_framework.test import APIClient (...) class MyTest(TestCase): def setUp(self): self.client = APIClient() def test_creation_and_deletion(self): payload = {"key": "value"} # This works, but it's handled by a custom create() method from views.py: res = self.client.post(<url>, payload) (...) # This doesn't work, no custom delete() method is defined anywhere: tar_headers = {"private-token": "<token>"} res2 = self.client.delete(res.data["target_resource_url"], headers=tar_headers) Printing res2 gives the following output: <HttpResponseNotFound status_code=404, "text/html"> Deletion requests sent towards target_resource_url from e.g. Postman work fine as long as token is given in headers. How to approach this issue? -
django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known
why this error ? django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known changes i made in settings.py file DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST': 'db', 'PORT': 5432 } } changes i made in dockor-compose.yml file version: '3.7' services: web: build: . command: python /code/manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - 8000:8000 depends_on: - db db: image: postgres:11 -
Why PyCharm Terminal returnung different results?
Here is similar question pycharm terminal and run giving different results as you may see there was problem with Python versions. Here what I have: (difference in the last lines output) Ubuntu Terminal: ***@***:~/Documents/Coding/Django/myfirst$ python3 manage.py shell Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from articles.models import Article, Comment >>> a = Article.objects.get(id = 1) >>> a <Article: How to...?> >>> a.comment_set.all() <QuerySet [<Comment: John>, <Comment: Jack>, <Comment: Nelson>, <Comment: Bill>]> PyCharm Terminal: ***@***:~/Documents/Coding/Django/myfirst$ python3 manage.py shell Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from articles.models import Article, Comment >>> a = Article.objects.get(id = 1) >>> a.id 1 >>> a.article_Title 'How to...?' >>> a.comment_set.all() <QuerySet [<Comment: Comment object (1)>, <Comment: Comment object (2)>, <Comment: Comment object (3)>]> So it`s returning id of Comment instead of Name. Many thanks for any advice! -
django charField not accepts numbers
I'm new to django and i was testing CURD and it worked correctly till i found something weird i have charfield which not accepting any numbers and showing an error when i get all records Reverse for 'updateUser' with arguments '('uuu1',)' not found. 1 pattern(s) tried views.py def signup(request): form = UserForm() if request.method == 'POST': # fullname = request.POST['fullname'] form = UserForm(request.POST) if form.is_valid(): form.save() return redirect('/') else: form = UserForm(request.POST) else: form = UserForm(request.POST) context = {'form':form} return render(request,'singup.html',context) def updateUser(request,fullname): user = User.objects.get(fullname__icontains=fullname) form = UserForm(instance=user) if request.method == 'POST': form = UserForm(request.POST, instance=user) if form.is_valid(): form.save() return redirect('/') context = {'form':form} return render(request,'singup.html',context) def getAllUsers(request): print("getAllUsers") thesearchValue = '' if 'SearchValue' in request.GET: thesearchValue = request.GET['SearchValue'] print(thesearchValue) print(request.GET['SearchValue']) allUsers = User.objects.filter(fullname__icontains=thesearchValue)#all() # return render(request,'getUsersInfo.html',{'allUsers':allUsers}) return render(request,'getUsersInfo.html',{'allUsers':allUsers}) else: print("Empty") allUsers = User.objects.all() return render(request,'getUsersInfo.html',{'allUsers':allUsers}) def deleteUser(request,fullname): print('delete the user') todelete = User.objects.filter(fullname=fullname) todelete.delete() return redirect(getAllUsers) Template <form method="GET"> {% csrf_token %} <div class="input-group"> <input type="text" class="form-control" placeholder="Search this blog" name="SearchValue"> <div class="input-group-append"> <button class="btn btn-secondary" type="button"> <i class="fa fa-search"></i> </button> </div> </div> </form> <table class="table table-bordered"> <thead> <tr> <th>Name</th> <th>Department</th> <th>Phone</th> <th>Actions</th> <th>Actions</th> </tr> </thead> <tbody> {% for x in allUsers%} <tr> <td>{{x.fullname}}</td> <td>{{x.email}}</td> <td>{{x.Resp}}</td> <td> <form … -
I installed a package outside virtual environment but cannot use it in the virtual environment
I've installed the package Pillow outside the virtual environment created using pipenv. But when I try to make migrations for my django project in this environment, it says Pillow is not installed and asks to install it. I think I installed pillow globally but it is not accessible by the pipenv virtual environment. I'm using python 3.8 and use sublime3 as editor. -
Check if object has relation with other in ManyToMany field and aggregate field
I have a couple models as follows: class Student(models.Model): name = models.CharField() classes = models.ManyToManyField(Class, related_name="students") class Class(models.Model): nombre = models.CharField What I need is a way such that, when querying students in certain class, instead of just returnig the students enrolled in that class, it returns a list of all the students, each one with an aggregated field indicating if such student is enrolled in that class, e.g.: [{'name':'student A', 'enrolled_in_physics':True}, {'name':'student B', 'enrolled_in_physics':False}] I think it can be achieved through F() expressions along with ExpressionWrapper, but have no idea of how implement them; additionaly, the documentation and the examples are not very noob-friendly. Any help is appreciated, thanks!. -
Please share what can be achieved using Django Middleware?
1)Cross site script validation 2)Connect database for CRUd operations 3)User authentication 4)Used for creating greaphical images I feel like 1 and 3 can be done, but please give suggestion if I am correct or not -
https module post request does't send data to django server from dialogflow fulfillment
I want to use post method for sending data to django server from dialogflow fulfillment. POST request completes successfully giving statusCode 200, but doesn't send any data. Dialogflow Fullfilment Code const https = require('https'); const data = JSON.stringify({ name: 'John Doe', job: 'Content Writer' }); const options = { hostname: 'my-url.com', method: 'POST', port:443, headers: { 'Content-Type': 'application/json', 'Content-Length': data.length } }; const req = https.request(options, res => { console.log(`statusCode: ${res.statusCode}`); let response = ''; res.on('data', (chunk) => { response+=chunk; }); res.on('end', () => { console.log('Body: ', JSON.parse(response)); }); }).on('error', error => { console.error(error); }); req.write(data_string); req.end(); Dialogflow responses with status 200 in firebase logs, but Django doesn't get any data from post request. Django Code def test_func(request): print(request.POST) return JsonResponse({'Response': request.POST}) Django server logs return empty query list <QueryDict: {}> note: I removed CsrfViewMiddleware in django settings, for just testing purpose -
How to access the ppts stored in the media folder in to views.py to perform certain operations in django
*i have added the code in settings.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') also in urls.py from django.contrib import admin from django.urls import path from django.urls import include from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('', include('cmp.urls')), path('', include('usr.urls')), path('', include('com.urls')), ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) the code written in views.py is import os from pptx import Presentation from django.conf import settings settings.configure() your_media_root = settings.MEDIA_ROOT+'media/input/Bebras_Best_of_school.pptx' prs = Presentation(your_media_root) title_slide_layout = prs.slide_layouts[0] slide = prs.slides.add_slide(title_slide_layout) title = slide.shapes.title subtitle = slide.placeholders[1] title.text = "Hello, World!" subtitle.text = "python-pptx was here!" prs.save('test.pptx') and the error i m getting is pptx.exc.PackageNotFoundError: Package not found at 'media/input/Bebras_Best_of_school.pptx' can you please help me* -
I wrote a code in Jupiter for visualization of graph. That code I want to write in Django. But I face an Issue while is properly run in Jupiter
import numpy as np import pandas as pd import matplotlib.pyplot as plt import COVID19Py covid19 = COVID19Py.COVID19() covid19 = COVID19Py.COVID19(data_source="jhu") latest = covid19.getLatest() location = covid19.getLocationByCountryCode("IN") loc_data=location[0] virusdata=dict(loc_data) loc_data=location[0] virusdata=dict(loc_data['latest']) names=list(virusdata.keys()) values=list(virusdata.values()) plt.bar(range(len(virusdata)),values, tick_label=names) plt.title('COVID-19 Analysis') plt.show() -
Django - App Engine - Cloud SQL (PostgreSQL) - OperationalError: could not connect to server: Connection refused
I have Django deployed to App Engine that's connected to Cloud SQL (PostgreSQL) instance. I keep getting the following errors: OperationalError: could not connect to server: Connection timed out and OperationalError: could not connect to server: Connection refused app.yaml # [START django_app] runtime: python37 service: prestige-worldwide handlers: # This configures Google App Engine to serve the files in the app's static # directory. - url: /static static_dir: static/ # This handler routes all requests not caught above to your main app. It is # required when static routes are defined, but can be omitted (along with # the entire handlers section) when there are no static files defined. - url: /.* script: auto # [END django_app] settings.py - DATABASE configuration ALLOWED_HOSTS = ['app-engine url','127.0.0.1'] DATABASES = { 'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'admin', 'HOST': 'instance public ip address', 'PORT': 'ip address host',}} It works fine locally with Cloud SQL, but doesn't work when deployed to App Engine. -
Django, internationalization and localization. How to translate dynamic content in the best possible way?
I have a news tab on my website. News is parsed from another site, so I can't translate all this content manually in my django.po file. So how can I do it in some other way? Also, i want to use language switcher, but this {% trans 'value' %} is so awful and bad, so it can translate words like 'Go/Change/English', only uppercase, only one-two words, and...that's it. Otherwise, I need to translate everything manually in my django.po file. But I can't do this because the content is constantly changing. Maybe I can somehow connect something like Google Translate language switcher to my site? If you know how to translate dynamic content in the best possible way, then I need your advices, suggestions, and recommendations, because i don't know how to do that in the best way. Thanks, any help will be invaluable. -
Image Text overlay where image is cropped to text are
I want to create a div that contains an img tag with the divs background image (so without CSS background property). This div also contains a child div with a dynamic amount of text. How can I make the background image or parent div crop itself according to the amount of text? this is my code atm: <div class="card bgslide text-center "> <div class="card-body text-white p-2"> {% if text.textList %}<div class="lecturer_note_overlay" ID="t2_{{text.id}}"><span class="text_title">{{text.title}}</span><br>{{ text.textList|safe|urlizetrunc:50 }}</div>{% endif %} </div> <img src="{{ text.image|thumbnail_url:'slides' }}" class="card-image-top transparent-image"/> <p></p> </div> -
Python, in project imports are not recognized
I have a Django project that I restructured. Since I did that all the imports doesn't work, but it's not consistent. For example, In my settings.py file: # triangulationapi/triangulationapi/setting.py from Project_Level.DataBase.DataBaseConsts import POSTGRESQL_CONNECTION This line doesn't raise errors (even though pycharm treats it as faulty) . but this line on one of the apps: from django.db import models from django.utils import timezone from ProjectLevel.APIConsts.Consts import AREAS raises error: from ProjectLevel.APIConsts.Consts import AREAS ModuleNotFoundError: No module named 'ProjectLevel' Using relative imports doesn't work as well: ..APIConsts.Consts import AREAS from ..APIConsts.Consts import AREAS ValueError: attempted relative import beyond top-level package from triangulationapi.Project_Level.APIConsts.Consts import AREAS doesn't work as well from triangulationapi.Project_Level.APIConsts.Consts import AREAS ModuleNotFoundError: No module named 'triangulationapi.Project_Level' My structure: ├── triangulationapi │ ├── hashers.py │ ├── __init__.py │ ├── KnownLocation │ ├── landingpage │ ├── manage.py │ ├── messages.pot │ ├── Project_Level │ ├── requirements.txt │ ├── SecondGDT │ ├── static │ ├── templates │ ├── ThreeLocations │ ├── triangulationapi └── ven -
How to sort on Long field in solr using django haystack by specifying the sort variable in url
My url looks like localhost:8000/searchManagement/search/t/age_group_to__gte=35&sort=age_group_from asc Here I am.trying to sort on Long field 'age_group_from' but its not working. Can someone help me please? -
how to use href links in django
I have a Django project like this: -project -templates file.html -project -app views.py How do I get to call a function in views.py from the file.html in an <a href="..."> link </a>statement? I already tried <a href="{% url '..app.views.function' %}">Link</a>, but that doesn't work. thx for your help and stay healthy! -
Is it possible to initialize a django OneToOneField without changing the related side until save?
I have a model that has a OneToOneField to itself which creates chains of this model. class Foo(models.Model): parent = models.OneToOneField('Foo', related_name='child', null=True, blank=True, on_delete=models.CASCADE) ... I want to build chains of these and replace parts by creating potential shorter chains that are presented as options from which one or none can selected. base = Foo() base.save() old_tail = Foo(parent=base) old_tail.save() option_1 = Foo(parent=base) Foo(parent=option_1) option_2 = Foo(parent=base) Foo(parent=option_2) It seams like I incorrectly assumed that the reference base.child is not updated until one of the options is saved. I noticed this because base.child now points to option_2. Is it possible to create the behavior that I desire? I.e. so that I can create potential instanced of Foo with parent=base but without actually changing base.child until I save them? -
How to pass a value from the view to a ModelForm
I'm trying to get the Id to filter the choices item to see. After several tutorials and docs, I'm still not get through... Here is the model: class CheckUpList(models.Model): title = models.CharField(max_length=150) task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name='checkuplist') done = models.BooleanField(default=False) def __str__(self): return self.title Here is the form: class MakeChecklistDone(forms.ModelForm): def __init__(self, task, *args, **kwargs): super(MakeChecklistDone, self).__init__(*args, **kwargs) #title = forms.CharField(max_length = 32) choices = forms.ModelMultipleChoiceField( widget = forms.CheckboxSelectMultiple(), queryset=CheckUpList.objects.all().filter(done=False, **task=??**) ) class Meta: model = CheckUpList fields = ['choices', ] I'm using the bellow view : def task_detail(request, pk): template_name = 'task/task-detail.html' task = Task.objects.get(pk=pk) ... if request.method == 'POST': ... else: form_checkUpList = MakeChecklistDone(request.POST, **initial={'task': 11 }**) But it seems I doing something wrong... Any helps will be marvellous. -
graphql.error.located_error.GraphQLLocatedError: connection_resolver() missing 1 required positional argument: 'info'
I'm trying to set permissions for my django-graphql(graphene) project using this package. According to it's doc, I have set the following configuration to control the all_dormitories query: from graphene_permissions.mixins import AuthNode, AuthFilter from graphene_permissions.permissions import AllowAuthenticated, AllowAny class DormitoryNode(AuthNode, DjangoObjectType): permission_classes = (AllowAuthenticated,) class Meta: model = Dormitory filter_fields = { 'name': ['exact', 'icontains', 'istartswith'], } interfaces = (graphene.relay.Node,) class AuthenticatedFilter(AuthFilter): permission_classes = (AllowAuthenticated,) class DormitoriesQuery(graphene.ObjectType): all_dormitories = AuthenticatedFilter(DormitoryNode) But when I send request to this query it responds as follows: { "errors": [ { "message": "connection_resolver() missing 1 required positional argument: 'info'", "locations": [ { "line": 2, "column": 3 } ], "path": [ "allDormitories" ] } ], "data": { "allDormitories": null } } Anyone knows what's the problem with my code? Note: I have replaced AllowAuthenticated with AllowAny and the response was the same.