Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
ImportError: libpq.so.5: cannot open shared object file: No such file or directory
(My operating system is fedora 34) I use django with haystack and postgresql. For development purposes I run heroku local command. I use three files for settings: base.py, local.py, pro.py. When I run heroku I use local.py file: from . base import * DEBUG = True SECRET_KEY='secretKey' DATABASES = { 'default': { 'ENGINE':'django.db.backends.sqlite3', 'NAME':os.path.join(BASE_DIR, 'db.sqlite3'), } } if DEBUG: INTERNAL_IPS = ('127.0.0.1', 'localhost',) DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', ] DEBUG_TOOLBAR_CONFIG = { 'INTERCEPT_REDIRECTS': False, } export DJANGO_SETTINGS_MODULE=myshop.settings.local but heroku shows this error: 12:54:14 PM web.1 | File "/home/user/env2/lib64/python3.9/site-packages/django/contrib/postgres/apps.py", line 1, in <module> 12:54:14 PM web.1 | from psycopg2.extras import ( 12:54:14 PM web.1 | File "/home/user/env2/lib64/python3.9/site-packages/psycopg2/__init__.py", line 51, in <module> 12:54:14 PM web.1 | from psycopg2._psycopg import ( # noqa 12:54:14 PM web.1 | ImportError: libpq.so.5: cannot open shared object file: No such file or directory 12:54:14 PM web.1 | [2021-07-21 09:54:14 +0000] [7689] [INFO] Worker exiting (pid: 7689) 12:54:14 PM web.1 | [2021-07-21 12:54:14 +0300] [7688] [INFO] Shutting down: Master 12:54:14 PM web.1 | [2021-07-21 12:54:14 +0300] [7688] [INFO] Reason: Worker failed to boot. Postgresql is running: postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vend> Active: active … -
Writing SQL query in production server for changing foriegnkey field to m2m in django & aws
I hava a django applcation where there are two models Desination and Package, where Package has a foriegn key field to Destination. Now after many days clients wants it to be m2m. I have to change that and also preserve the data at the same time. My models: class Destination(models.Model): name = models.CharField(max_length=255, unique=True) .................../ class Package(models.Model): # destination = models.ForeignKey(Destination, on_delete=models.CASCADE,related_name='package') destinations = models.ManyToManyField(Destination,related_name='packages') ....................../ Here I changed the fk field to m2m with the following way: from __future__ import unicode_literals from django.db import models, migrations def make_many_destinations(apps, schema_editor): """ Adds the Destination object in Package.destination to the many-to-many relationship in Package.destinations """ Package = apps.get_model('packages', 'Package') for abc in Package.objects.all(): abc.destinations.add(abc.destination) class Migration(migrations.Migration): dependencies = [ ('packages', '0006_package_destinations'), ] operations = [ migrations.RunPython(make_many_destinations), ] I did exactly the same as this Django data migration when changing a field to ManyToMany I had to create a custom migration file (above), write a function, and then run migrate. In my local development, it works perfectly. The field is changed to m2m and there are data as well. We are having aws as a production server. I did the commits and did eb deploy, then went to the production database and … -
To import all objects in multiple nested foreign key relationships efficiently in django
Is there an effective way to get all dictionary objects that correspond to the product? This is my django model class Product(models.Model): ... class Ingredient(models.Model): product = FK(Product) middle = FK(Middle) ... class Middle(models.Model): dictionary = FK(Dictionary) ... class Dictionary(models.Model): ... The way I did it. product = Product.objects.get(id=1) ingredients = ProductIngredient.objects.filter(product=product) middles = ProductMiddle.objects.filter(ingredient__in=ingredients) dictionaries = ProductDictionary.objects.filter(middle__in=middles) but I want dictionaries = product.ingredient.middle.dictionary.all() (?) # AttributeError: 'RelatedManager' object has no attribute 'middle' Or Is there a better way? Is there a way to import this data with fewer queries? -
Visual studio code debug tool for python unit test does not show debug tools, when extra library is imported
For pure Django tests, visual studio code easily discovers my tests so i can debug them: class SomethingTest(TestCase): def setUp(self) -> None: return super().setUp() def test_something(self): self.assertEqual(4, 4)``` **But when i add some Django-rest-framework libraries - debug tools disappear:** ```from django.test import TestCase from rest_framework.test import APIClient class BoringTest(TestCase): def setUp(self) -> None: return super().setUp() def test_boring(self): self.assertEqual(4, 4) How can i setup vs code unit-test debug tools so i can use rest_framework? -
Django elasticsearch dsl updating information on object fields multiple levels deep
The problem for me is that the object fields don't get updated for all indexes. In my cases I tested changing the foreign key in product to product_information. The elasticseasrch indexes were updated for every index except for the stock index. Is there a way to solve this issue? @registry.register_document class ProductInformationDocument(Document): brand = fields.ObjectField(properties={ 'name': fields.TextField( fields={ 'raw': fields.KeywordField(), 'suggest': fields.CompletionField() } ), }) title = fields.TextField( fields={ 'raw': fields.KeywordField(), 'suggest': fields.CompletionField() } ) class Index: name = 'product_information' settings = {'number_of_shards': 1, 'number_of_replicas': 0} class Django: model = ProductInformation related_models = [Brand] fields = [ 'review_score', 'review_count' ] def get_queryset(self): return super(ProductInformationDocument, self).get_queryset().select_related( 'brand' ) def get_instances_from_related(self, related_instance): return related_instance.product_information_set.all() @registry.register_document class ProductDocument(Document): product_information = fields.ObjectField(doc_class=ProductInformationDocument) category = fields.ObjectField(properties={ 'name': fields.TextField( fields={ 'raw': fields.KeywordField(), 'suggest': fields.CompletionField() } ), 'category_code': fields.IntegerField() }) subcategory = fields.ObjectField(properties={ 'name': fields.TextField( fields={ 'raw': fields.KeywordField(), 'suggest': fields.CompletionField() } ), 'subcategory_code': fields.IntegerField() }) chunk = fields.ObjectField(properties={ 'name': fields.TextField( fields={ 'raw': fields.KeywordField(), 'suggest': fields.CompletionField() } ), 'chunk_code': fields.IntegerField() }) id = fields.IntegerField() ean = fields.TextField( fields={ 'raw': fields.KeywordField(), 'suggest': fields.CompletionField() } ) class Index: name = 'products' settings = {'number_of_shards': 1, 'number_of_replicas': 0} class Django: model = Product related_models = [Category, SubCategory, Chunk, ProductInformation] fields = … -
Django - OperationalError after deleting migration files
In the earliest days of my system, before i knew how to utilize django's built-in User model, i had my own class named myUser which i intended to use for the same purpose. i ended up deleting this one and instead using django's User model. all was fine for a while. then i tried to change the id of all my custom models to a UUIDField, and got the syntax wrong, which i unfortunately only realized after i ran makemigrations and migrate. i corrected it, but there was still a bug because the migration file of the wrongly-syntaxed UUIDField still lingered in migrations. that's what i understood from googling for a while, anyway. since i wasn't sure which migration file caused the error, i just deleted the last 5 migration files (in hindsight, not the best idea i've ever had). Unfortunately, one of those migration files were the one which covered the deletion of the myUser model. now, whenever i try to migrate, i get the following error: django.db.utils.OperationalError: no such table: phoneBook_myUser it seems this error is stopping any of my new migrations to go through. i've googled for a while, and it seems my two options are to … -
Django, annotate field with id of many-to-many field's element with lowest parameter
I have the following models: from django.db import models class Topping(models.Model): # ... price = models.IntegerField() class Pizza(models.Model): # ... toppings = models.ManyToManyField(Topping) I need to get following query: my_query = Pizza.objects.all().annotate( topping_with_min_price="get id of topping with the minimal price") So, how to get that? -
Does anyone have idea how to start with cardconnect/cardpointe payment gateway integration?
Cardpointe is payment gateway i need to integration for my django web application. and I am integrating for the first time. https://developer.cardpointe.com/cardconnect-api -
How do celery workers communicate in Heroku
I have some celery workers in a Heroku app. My app is using python3.6and django, these are the relevant dependencies and their versions: celery==3.1.26.post2 redis==2.10.3 django-celery==3.2.2 I do not know if the are useful to this question, but just in case. On Heroku we are running the Heroku-18 stack. As it's usual, we have our workers declared in a Procfile, with the following content: web: ... our django app .... celeryd: python manage.py celery worker -Q celery --loglevel=INFO -O fair one_type_of_worker: python manage.py celery worker -Q ... --maxtasksperchild=3 --loglevel=INFO -O fair another_type: python manage.py celery worker -Q ... --maxtasksperchild=3 --loglevel=INFO -O fair So, my current understanding of this process is the following: Our celery queues run on multiple workers, each worker runs as a dyno on Heroku (not a server, but a “worker process” kind of thing, since servers aren’t a concept on Heroku). We also have multiple dynos running the same celery worker with the same queue, which results in multiple parallel “threads” for that queue to run more tasks simultaneously (scalability). The web workers, celery workers, and celery queues can talk to each other because celery manages the orchestration between them. I think it's specifically the broker that … -
Post Request in NESTED API from the FrontEnd
I have a question regarding a post request to a nested api. Say we have an API looking like this : [ { "id": 2, "name": "John Smith", "age": 34, "dob": "21-06-2021", "image": null, "party_details": [ { "id": 2, "party": 2, "adress": "Oxford Street No1", "date": "22-06-2021", "arrival": "09:30 PM" } ] } ] How do you make a post request from the frontEnd to enter data in both Models at the same time. Must I add that the API is build in DRF and these are two models with a relationship between them and a nested serializer. One is User and the other is party_details. It work's fine in POSTMAN but I just can't find a way to upload data from the frontEnd I tried Axios but I can't find a way to also send data to the party_details model at the same time. I have no ideea how to approach this. Any help will be much apreciated! Thank you for your time -
How can i get the data-value with what statment?
How can i get the data-vale? On html file <form method='get' action='#'> <input type="submit" data-value="1" value="Edit" name="Type" /> <input type="submit" data-value="1" value="Delete" name="Type" /> In django views if request.GET.get('Type') == 'Delete': print (request.GET.get('Delete')) -
Method notify in User Model
Does anybody can explain how can I implement method def notify : in User model django and for What I need it ? Some guy recomend me to set this method to User model.But for what? How it must to work? I have the next code below: users.py class User(AbstractUser): class Roles(models.IntegerChoices): ..... Here must to be this method ? But how it works to notify user? Then in users.py I have Notification model: class Notification(models.Model): user = models.ForeignKey('User', models.CASCADE, related_name='notifications') message = models.TextField('Message') created_at = models.DateTimeField('Seen', auto_now_add=True, editable=False) def __str__(self): return f"{self.message}" class Meta: verbose_name = 'MSG' verbose_name_plural = 'MSG' ordering = ['-created_at',] So in views.py I have class NotificationListView(core.ListView): permission_classes = [AllowAny] model = Notification context_object_name = 'notifications' template_name = 'auth/notifications.html' def get_queryset(self): return super().get_queryset().filter(user=self.request.user) Please do not advice me some library or other settings to set notification.I checked it 2 days. I tried it.But I believe this def notify method in User can help explain my problem without other outside library.It you have some example please help! -
Do we have to transfer the Django Files also while transferring all the Project Files to Ubuntu 20 using FileZilla?
Do we have to transfer the Django files too while transferring Project files which are the Html, python and static files to Ubuntu 20 using FileZilla? And by Django Files I mean the Files that get installed after we run the command pip install django. Thank you -
What are the different programming language used for????? please need help for python code to run to website
It's been 3 years i have been into python , have a very amazing grasp of it and made a very good software . Now i want to build a website(which i don't know how to do) in which it asks user for input and that input goes into my python code and after the code gets run , the output should be shown to the user on the website. Now i was searching how to do it , someone saying you cant run python code someone said use django ,flask , someone said run it on node js. I am very confused how , what to do somenone please help it's been 2 months i am stuck please help!!!!!!! please -
Problem with creating Carousel slider in Django
Recently, I tried to create a Django website and I wanted to add a carousel slider component to it but when I do that, all the images appear on top of each other! What should I do? Best Regards Masoud My Code: {This code is in the base.html file} <div id="demo" class="carousel slide" data-ride="carousel"> <!-- Indicators --> <ul class="carousel-indicators"> <li data-target="#demo" data-slide-to="0" class="active"></li> <li data-target="#demo" data-slide-to="1"></li> <li data-target="#demo" data-slide-to="2"></li> </ul> <!-- The slideshow --> <div class="carousel-inner"> <div class="carousel-item active"> <img src="{% static "images/3.jpg" %}" alt="Los Angeles"> </div> <div class="carousel-item"> <img src="{% static "images/4.jpg" %}" alt="Chicago"> </div> <div class="carousel-item"> <img src="{% static "images/5.jpg" %}" alt="New York"> </div> </div> <!-- Left and right controls --> <a class="carousel-control-prev" href="#demo" data-slide="prev"> <span class="carousel-control-prev-icon"></span> </a> <a class="carousel-control-next" href="#demo" data-slide="next"> <span class="carousel-control-next-icon"></span> </a> </div> -
Why doesn't request.GET.get("edit") work in my code?
I'm trying to make a view in Django, in where if the edit button is pressed on that page it is passed on to another view as a session. def page(request,user_input): entry = util.get_entry(user_input) name = user_input.capitalize() request.session['name'] = name request.session['entry'] = entry if request.GET.get("edit"): # **<- This is not working for some reason.** request.session['edit'] = True else: request.session['edit'] = False return render(request, "homepage/page.html", { "entry":entry, "title":name, }) Here is my page.html file {% block body %} {% if entry %} <h1>{{title}}</h1> {{ entry }} {% endif %} <form action="{% url 'create' %}" name='edit'> <input type="submit" value='edit' class="button"> </form> {% endblock %} This is the view where I want to use the session def create(request): change =request.session['edit'] if request.GET.get('submit'): title = str(title).lower() if change: util.save_entry(title,content) return HttpResponseRedirect('/index') -
Django Forms Customization
I have a page that displays products that have been ordered and I want to give the user the ability to leave a review on their products which have been ordered. I have a review model as well, but when rendering the form it will list all of the products available on the website when I want only the products the customer has ordered to display. Is this possible? I am unsure how to accomplish this with django. This is the form class ReviewForm(forms.ModelForm): class Meta: model = Review exclude = ['user', 'date'] widgets = { 'product': forms.Select(attrs={ 'class': 'form-control' }), 'rating': forms.NumberInput(attrs={ 'class': 'form-control', 'placeholder': '5.0..' }), 'comment': forms.Textarea(attrs={ 'class': 'form-control' }) } This is the view with the get request only class MyOrdersView(LoginRequiredMixin, View): def get(self, request, *args, **kwargs): try: order = ShoppingCartOrder.objects.filter(user=self.request.user, ordered=True) form = ReviewForm() context = { 'object': order, 'form': form } return render(request, 'my_site/my_orders.html', context) except ObjectDoesNotExist: messages.warning(request, 'You do not have any orders') return redirect('all_products') And if needed this is how I am displaying the form on the page <div class="container w-25 mb-5"> <form> {% csrf_token %} {% for field in form %} <div class="form-group px-3 my-3"> {{ field.label_tag }} {{ field }} … -
how to send reset password email at the creation of my user in django API?
I build an API with django and I'm automating the welcome email at creation of one user with Sendinblue. I have no problem at this step. (so we are at the url /add_user/) I have a second url to send a link (uid + token) to a user (thanks to his email). For that I use an external package : djoser. So I use the url of djoser /auth/users/reset_password/ and /auth/users/reset_password_confirm/ My dream would be to combine these 2 functionnalities in the single url /add_user/ My problem is that the logic in /reset_password/ and /reset_password_confirm/ was written by djoser so I can't handle it. Or I don't know how ! Here is what I tried to override djoser views : in urls.py: path('custom_djoser/', ChangeCredentialsView.as_view(), name='customdjoser'), in views.py: class ChangeCredentialsView(UserViewSet): def post(self, *args, **kwargs): print("hello world") return JsonResponse({"helloworld":"success"}) got the following error : The actions argument must be provided when calling .as_view() on a ViewSet. For example .as_view({'get': 'list'}) So I removed the .as_view() in urls.py and got this error : Forbidden (CSRF token missing or incorrect.): /custom_djoser/ For me its incomprehensible because I don't use csrf token, but I tried with @csrf_exempt in a dispatch function inside my class. I … -
How to change base choice in OrderingFilter from django-filter?
I have such filter and i'd like to do one of these things: Change -------- to other label Remove -------- Set From cheaper to expensive as a base choice and remove --------- -
Django: how can i change cat_id to cat_slug without deleting database?
Cat_id in sqlite is int right now. Is there any way to change it to slug without deleting whole database? I've already deleted it while changing men_id to slug and it was pretty long action. from django.db import models from django.urls import reverse class Men(models.Model): title = models.CharField(max_length=50, verbose_name='Заголовок') slug = models.SlugField(max_length=100, unique=True, db_index=True, verbose_name='URL') content = models.TextField(blank=True, verbose_name='Текст Статьи') photo = models.ImageField(upload_to="photos/%Y/%m/%d", verbose_name='Фото') time_create = models.DateTimeField(auto_now_add=True, verbose_name='Время публикаци') time_update = models.DateTimeField(auto_now=True, verbose_name='Время изменения') is_published = models.BooleanField(default=True, verbose_name='Видимость на сайте') cat = models.ForeignKey('Category', on_delete=models.PROTECT, verbose_name='Категория') def __str__(self): return self.title def get_absolute_url(self): return reverse('post', kwargs={'post_slug': self.slug}) class Meta: verbose_name = 'Известного мужчину' verbose_name_plural = 'Известные мужчины' ordering = ['title'] class Category(models.Model): name = models.CharField(max_length=100, db_index=True, verbose_name='Название каатегории') slug = models.SlugField(max_length=100, unique=True, db_index=True, verbose_name='URL') def __str__(self): return self.name def get_absolute_url(self): return reverse('category', kwargs={'cat_slug': self.slug}) class Meta: verbose_name = 'Категорию' verbose_name_plural = 'Категории' -
Saleor git clone issue
Would appreciate some help with this issue: I tried to git clone https://github.com/mirumee/saleor.git. and failed to clone the repository -
Server error on django app hosted using GCP
I got 500 Server Error on my app, which I just hosted using google cloud https://exam-3d397.el.r.appspot.com/ I am not sure how my app.yaml should look like - runtime: python39 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 # This sample incurs costs to run on the App Engine flexible environment. # The settings below are to reduce costs during testing and are not appropriate # for production use. For more information, see: # https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml manual_scaling: instances: 1 resources: cpu: 2 memory_gb: 4 disk_size_gb: 10 I added this to my settings.py - ALLOWED_HOSTS = ['.herokuapp.com', '127.0.0.1', '.r.appspot.com'] There were no errors on deploying. and I have earlier deployed on heroku My file structure looks like structure I am a beginner to hosting with google cloud, any help is appreciated. -
How to use the serializer field values inside the serializer
In Django, I have a serializer.Here I need to use the pub_id inside get_book_name.How can I do that? class ABC(serializers.ModelSerializer): pub_id = serializers.ReadOnlyField(source='publication.id', read_only=True) book_name = SerializerMethodField() def get_book_name(self): # here I need to use the pub_id # How can I use it? class Meta: model = xxx fields = ('pub_id', 'book_name') I am a quite newbie in django and can anyone suggest where I can learn the full functionalities of Django as a beginner.Documentation is bit hard Any Answers would be helpful. Thank you -
How can I test unmanaged database in Django?
I'm working on a Django API that connects to an external database using unmanaged models. I want to create some objects in this database in my unit tests so I can test a few endpoints, but I cannot because this database is entirely unmanaged, there are no migrations at all for it. I have tried using the schema_editor to create the tables but it doesn't work because the schema doesn't exist. I have tried to run raw SQL to create the schema but it doesn't work. I have tried so many variations of so many different things that I honestly don't know which ones are worth describing here in detail. In my current setup I have a custom test runner that looks somewhat like this: from django.db import connections from django.test.runner import DiscoverRunner class TestRunner(DiscoverRunner): def setup_test_environment(self, *args, **kwargs): super().setup_test_environment(*args, **kwargs) with connections["unmanaged_db"].cursor() as cursor: cursor.execute( """ CREATE SCHEMA IF NOT EXISTS myschema; CREATE TABLE IF NOT EXISTS myschema.mytable ( ... ); """ ) def teardown_test_environment(self, *args, **kwargs): super().teardown_test_environment(*args, **kwargs) Note that when I don't include "IF NOT EXISTS" in my raw SQL, I get errors because the schema and relation "already exist". Yet, when I run my tests and … -
How to change booleanfields using bootstrap switches?
I want to use the switch button on the bootstrap to operate the model called field, but I don't know how to access it. class NewBlank(models.Model): ... blank_on_off = models.BooleanField(default=False) ... If I have the following booleanfield and can I change the booleanfield by cycling the switch as shown in the picture?