Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django Images not uploading via S3
I am attempting to upload files to s3 via s3 from this tutorial. I created a group and and user with full s3 privilege's and when i upload an image it stays local instead of being uploaded to bucket. block all public access is false on the bucket boto is installed as well as django-storages added to the apps. Having a hard time figuring out the issue as i don't have any error messages to work with any help would be great! settings.py USE_S3 = os.getenv('USE_S3') == 'TRUE' if USE_S3: # aws settings AWS_ACCESS_KEY_ID = os.getenv('...') AWS_SECRET_ACCESS_KEY = os.getenv('...') AWS_STORAGE_BUCKET_NAME = os.getenv('...') AWS_S3_FILE_OVERWRITE = False AWS_DEFAULT_ACL = 'public-read' AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com' AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400'} # s3 static settings AWS_LOCATION = 'static' STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{AWS_LOCATION}/' STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' PUBLIC_MEDIA_LOCATION = 'media' MEDIA_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{PUBLIC_MEDIA_LOCATION}/' DEFAULT_FILE_STORAGE = 'my_app.storage_backends.PublicMediaStorage' else: STATIC_URL = '/staticfiles/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') MEDIA_URL = '/mediafiles/' MEDIA_ROOT = os.path.join(BASE_DIR, 'mediafiles') STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) storage_backends.py from django.conf import settings from storages.backends.s3boto3 import S3Boto3Storage class StaticStorage(S3Boto3Storage): location = 'static' default_acl = 'public-read' class PublicMediaStorage(S3Boto3Storage): location = 'media' default_acl = 'public-read' file_overwrite = False bucket CORS: [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "POST", "GET", "PUT" ], "AllowedOrigins": [ … -
fetching not with custom primary id in django
I have created a table in which the primary id have to customize id product_id like class Product(models.Model): product_id = models.BigIntegerField(auto_created = True,primary_key = True, unique=True) name = models.CharField(max_length=200) ref = models.CharField(max_length=100) number= models.CharField(max_length=100) class Meta: db_table = "products" def __str__(self): return self.name after creating the record I want to get the id of the latest record but when I retrieve the data with this id getting None product = Product.objects.create(name=name, ref=ref, number=number) print(product.product_id) product.product_id id getting null Pleae give me a solution to why this is happening. -
Can I deploy a django app to heroku from windows 10 operating system
I tried to deploy a django app to heroku from my windows 10. I used gunicorn in the Procfile which gives me error after successful deployment. what can I use in place of gunicorn in the Procfile? -
I have this problem here why I can't runserver
[enter image description here][1] the problem is I cannot do the runserver thing even though the venv and all the stuff are completly fine -
How to manage two applications in django single project [closed]
i have django project in which i have two application User side website Admin panel (backend). Not the admin provided by django. i am unable to manage two application setting.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app', 'app_admin' ] urls.py urlpatterns = [ path('admin/', admin.site.urls), path('', include('app.urls')), path('', include('app_admin.urls')), ] -
Django Serializers - Datetime with multiple possible formats
I want my Django Serializer to validate the format of a date according to several possible formats. Essentially, these formats are: just the date (YYYY-MM-DD) date + hours (YYYY-MM-DD HH) date + hours + minutes (YYYY-MM-DD HH:MM) date + hours + minutes + seconds (YYYY-MM-DD HH:MM:SS) I know that the final two are possible together, using the DateTimeField with format= '%Y-%m-%d %H:%M:%S. I know the first one is possible by default using the DateField. I assume the second one is possible using the DateTimeField with format= '%Y-%m-%d %H', but I haven't tested. What I want to know is: is there a straightforward way to combine all these validators together, without having to use custom functions/validators? For example, my first instinct was to provide a list of possible formats to the format parameter on the Date/DateTime fields, but with no success. Is there something I'm missing? -
How to implement to get percentage task completed by a celery task in djano?
Let I have a celery task task_func() is it possible to write some code so that i can get the percentage of a task completed in django. def task_func(): # some logic ... ... -
Django pass field from serializer to model.save() that is not present in the model
I need to pass fields that are present in serializer, but not present in model to model save method (I have complicated saving logic and I want to make some decisions in object creation based on these fields). How can I do that? I tried to add non_db_field = property to model, but I still get error Reading() got an unexpected keyword argument 'negative_amount' -
Django migrations duplicate/already exists problem
I have a fairly large code base in django, with several applications, and at some point I had a problem: every time I change or add models and try to do a migration, an error appears: django.db.utils.ProgrammingError: relation "appname_modelname" already exists. The problem has been going on for some time - the migration file is always created under the same number - 0114 (I could not find this file, by the way), and all new fixes are recorded in it along with the previous ones, which is why the problem grows, like snowball. I did not want to delve into the solution and just manually removed all the innovations from the database - everything that caused the "already exists" conflict to appear. So, in order for the migration to succeed, I had to manually delete all models or table fields that I created after this problem appeared. But now I'm starting to work in prod with this code and fill it with data, and it is no longer possible to delete all the data from the corresponding tables. I have no idea why this problem appeared and how to solve it and would really appreciate your advice. I tried to … -
DRF Serializer - Accept field but don't use it in `create` or `update`
I have a model Message that has a FileField. My API accepts files in Base64 encoding so they can be sent alongside other data. To know a filename and an extension, there is one more field attachment_filename in the serializer that is not a model field. It is used inside Base64Field. I want to be able to validate if there are both attachment_filename , attachment, or none of them. The problem is that if the attachment_filename is read-only, it is not present in validate - data variable. On the other hand, if it's required=False, allow_null=True, the serializer raises an error when creating a message: TypeError: ChatMessage() got an unexpected keyword argument 'attachment_filename' Code: class Base64File(Base64FileField): # todo make accept a list of extensions (finite eg. pdf, xlsx, csv, txt ) ALLOWED_TYPES = ['pdf', 'xlsx', 'png', 'jpg', 'jpeg', 'docx', 'doc', 'zip'] def get_file_extension(self, filename, decoded_file): extension = self.get_full_name().split('.')[-1] return extension def get_file_name(self, decoded_file): attachment_filename = self.get_full_name() return '.'.join(attachment_filename.split('.')[:-1]) def get_full_name(self): return self.context['request'].data['attachment_filename'] # todo validate name class ChatMessageSerializer(serializers.ModelSerializer): attachment = Base64File(required=False) attachment_filename = serializers.CharField(required=False, allow_null=True) class Meta: model = ChatMessage fields = '__all__' def validate(self, data): """ Validation of start and end date. """ attachment = data.get('attachment') attachment_filename = data.get('attachment_filename') if … -
why in my pycharm IDE template tags intellisense or html tags intellisense do not work?
there is no suggestion for template tags or html tags what should i do ? -
Python | Sum values when data is repeated on other list
So, this is something a little crazy, but I hope it has a solution. I am creating a web application to check sales on a publishing house. Up until now I got everything good: I created a model for products (books), for sales... Everything OK. I am using charts.js to display data. Here is the code for the view: def top_sales_view (request, *args, **kwargs): labels = [] #list for charts.js sold_copies = [] #list for charts.js billed = [] #list for charts.js books_all = Product.objects.all() #get all data from books for book in books_all: book_data=Sale.objects.filter(book = book.id ) #get all sales per book quantity_list = [] #set list of each quantity per sale income_list=[] #set list of each income per sale for data in book_data: quantity = data.quantity income = float(data.final_price) quantity_list.append(quantity) #list all quantity sales per book copies=sum(quantity_list) #sum all quantity sales per book income_list.append(income) #list all income sales per book billing=sum(income_list) #sum all income sales per book book ={ 'id': book.id, 'title':book.title, 'cost_center': book.cost_center, 'data' : { 'copies': copies, 'billing' : billing } } #------------- PARA CHARTS.JS ------------- if book['cost_center'] not in labels: #chech if cost_center is not on the list labels.append(book['cost_center']) #if it isn't, add it if … -
Is there a way to create a django model foreignkey field with variable choices?
Let's say I have three models device, mechanical and digital. In the device model I have a field type. The type field needs to be in a foreign key relationship with either mechanical or digital model which will be determined by the data. Is there any way to create the type field in such a way that the model in which the foreign key relationship is to be done can be chosen manually. Something like: type = models.ForeignKey(to=Choices) where the Choices could be digital and mechanical. I have tried implementing generic foreign keys but my database schema is a bit complex so that would be very difficult to maintain. Is there any other way in django that I can do the above? -
Docker - I have a django application running inside a container on my local machine. I want to connect the app to Postgres DB on my machine
What am I doing: sudo docker build -t my_service:latest . sudo docker run -p 8000:8000 -d sso_service:latest I have added my docker IP range 172.17.0.0/16 to pg_hba.conf I have tried using --network=host with docker run -
Django: Allowing user to click an accept or reject button on each item in a list in Django
I'm working on a website where a list of a varying number of matches with organisations is made for each user. I was wondering if there was a way to display to a user each element in the list with an accept and reject button next to each element so that the user can accept or reject the matches? I found some people recommending pagination but I couldn't get that to work with the list having a variable number of items. Thanks in advance. -
Cors error happening on a simplejwt authenticated webpage
I have used simplejwt in my code and I also have added django-cors-headers to my project to allow frontend development. the problem is that I have 2 APIs that need authentication to allow users to work with them and I can not send a request to these two APIs on the front end and I get the following error: Access to fetch at 'http://localhost:8000/api/user/myapi' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field x-auth-token is not allowed by Access-Coontrol-Allow-Headers in preflight response Here are the important parts of my settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework.authtoken', 'rest_framework_simplejwt', 'corsheaders', ... ] MIDDLEWARE = [ ... 'corsheaders.middleware.CorsMiddleware', ] ALLOWED_HOSTS=['*'] CORS_ORIGIN_ALLOW_ALL = True REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ), 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 10, } SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(days=10), 'REFRESH_TOKEN_LIFETIME': timedelta(days=10), 'ROTATE_REFRESH_TOKENS': True, 'BLACKLIST_AFTER_ROTATION': False, 'ALGORITHM': 'HS256', 'SIGNING_KEY': SECRET_KEY, 'VERIFYING_KEY': None, 'AUTH_HEADER_TYPES': ('JWT',), 'USER_ID_FIELD': 'userID', 'USER_ID_CLAIM': 'user_id', 'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',), 'TOKEN_TYPE_CLAIM': 'token_type', } and here are my views.py and serializers.py # Serializers.py class myAPISerializer(serializers.ModelSerializer): class Meta: model = someModel fields = ('user', 'someField',) read_only_fields = ('user',) def create(self, validated_data): ... #Some changes return super().create(validated_data) # Views.py class PaymentView(generics.CreateAPIView): serializer_class = PaymentSerializer … -
django db with ssh tunnel
Is there a python native way to connect django to a database through an ssh tunnel? I have seen people using ssh port forwarding in the host machine but I would prefer a solution that can be easily containerized. -
NoReverseMatch in Ajax Reorder
I am running into the following issue while implementing an Ajax reorder view into my app. Essentially, my app is just a table that you can filter, reorder, and operate CRUD functions within. When I applied the filter view, the reordering doesn't work anymore. You should be able to update the ranking of each row based on dragging the row up/down ajax: class AjaxReorderView(View): def post(self, *args, **kwargs): if self.request.is_ajax(): data = dict() try: list = json.loads(self.request.body) model = string_to_model(self.kwargs['model']) objects = model.objects.filter(pk__in=list) # list = {k:i+1 for i,k in enumerate(list)} for object in objects: object.rank = list.index(str(object.pk)) + 1 model.objects.bulk_update(objects, ['rank']) # for key, value in enumerate(list): # model.objects.filter(pk=value).update(order=key + 1) message = 'Successful reorder list.' data['is_valid'] = True # except KeyError: # HttpResponseServerError("Malformed data!") except: message = 'Internal error!' data['is_valid'] = False finally: data['message'] = message return JsonResponse(data) else: return JsonResponse({"is_valid": False}, status=400) pick_list: {% extends 'base.html' %} {% load cms_tags %} {% block title %} {{ title }} · {{ block.super }} {% endblock title %} {% block content %} <div style="font-size:24px"> {{ title }} </div> <div style="font-size:14px; margin-bottom:15px"> Click on the arrows on the right of each contestant and drag them up or down to reorder … -
Got AttributeError when attempting to get a value for field `email` on serializer `VerifyAccountSerializer`
I am trying to create a verify API, which generates a random token and map it with user AttributeError at /api/verify/ Got AttributeError when attempting to get a value for field email on serializer VerifyAccountSerializer. The serializer field might be named incorrectly and not match any attribute or key on the AllVerifyOrForgotToken instance. Original exception text was: 'AllVerifyOrForgotToken' object has no attribute 'email'. models.py class AllVerifyOrForgotToken(models.Model): user = models.ForeignKey( User, verbose_name='User', on_delete=models.CASCADE ) token = models.CharField(max_length=32, unique=True) def __str__(self): return str(self.token) serializers.py class VerifyAccountSerializer(serializers.ModelSerializer): email = serializers.EmailField() class Meta: model = AllVerifyOrForgotToken fields = ('email',) def create(self, validated_data): email = validated_data.pop('email') return AllVerifyOrForgotToken.objects.create(**validated_data) viewsets.py class VerifyViewset(mixins.CreateModelMixin, viewsets.GenericViewSet): permission_classes = (AllowAny,) queryset = AllVerifyOrForgotToken.objects.all() serializer_class = VerifyAccountSerializer def perform_create(self, serializer): email = serializer.validated_data['email'] try: user = User.objects.get(email=email) serializer.save( token=token_generator(32), #function to generate random string user=user, ) except User.DoesNotExist: raise APIException(detail='User does not exist') -
select data in a time interval in minutes django orm
How are you? I need some help please. I am working in Django and I need to make a query of all sales between 00:00 and 00:30 minutes, so every 30 minutes I need to see the sales. I was putting together something like this but it is not working. SalesOrder.objects.annotate(Sum('subtotal')).filter(created_at__time__range= ('00:00:00:00', '')).filter(created_at__time = hour_now) This is a SQL query that delivers the correct data. SELECT sum(subtotal) as tot FROM sales_salesorder ss where extract(minute from created_at::time) between 31 and 59 and created_at::date = now()::date and extract(hour from created_at) = extract(hour from CURRENT_TIME); The problem is that I can't leave the sql query because I have to pass it through a for loop to return the data, that's why the most effective way is to use the ORM, that's the reason of my question. -
AttributeError at /coordinator 'Coordinator' object has no attribute 'agent'
Expected Outcome: I want to query the parent objects which are relevant to the coordinator. Please help on how I can achieve such. The Error is occuring after running the following queryset, user.coordinator.agent.parent_set.all() Models class Coordinator(models.Model): user = OneToOneField(User, null=True, blank=True, on_delete=models.SET_NULL) region = models.CharField(max_length=15, null=True, blank=True, choices=REGION) id_no = id_no = models.CharField(max_length=150, null=False, blank=False, unique=True) address = models.TextField(null=False, blank=False) gender = models.CharField(max_length=20, null=False, blank=False, choices=GENDER) created_at = models.DateTimeField(auto_now_add=True) class Agent(models.Model): user = OneToOneField(User, null=True, blank=True, on_delete=models.SET_NULL) coordinator = models.ForeignKey(Coordinator, null=True, blank=True, on_delete=SET_NULL) region = models.CharField(max_length=15, null=True, blank=True, choices=REGION) id_no = id_no = models.CharField(max_length=150, null=False, blank=False, unique=True,) address = models.TextField(null=False, blank=False) gender = models.CharField(max_length=20, null=False, blank=False, choices=GENDER) created_at = models.DateTimeField(auto_now_add=True) class Parent(models.Model): agent = models.ForeignKey(Agent, null=True, blank=True, on_delete=SET_NULL) surname = models.CharField(max_length=150, null=False, blank=False) first_name = models.CharField(max_length=150, null=False, blank=False) other_name = models.CharField(max_length=150, null=True, blank=True) address = models.CharField(max_length=200, null=True, blank=True) region = models.CharField(max_length=15, null=True, blank=True, choices=REGION) dob = models.CharField(max_length=10, null=False, blank=False) -
How to get a specific field within another django model?
I want to be able to get a specific field in a django model which is referenced through foreignkey. Here is my views.py file: def add_watchlist(request, name): stuff = Watchlist() thing = listing.objects.get(title = name) id = thing.id stuff.listing_id = id stuff.user = request.user stuff.save() things=Watchlist.objects.filter(user = request.user) return render(request, "auctions/watchlist.html",{ "items":things }) Here is my models.py: class User(AbstractUser): pass def __str__(self): return f"Cool kid {self.username}" class listing(models.Model): creator=models.ForeignKey(User, on_delete=models.CASCADE, related_name="owner") price=models.IntegerField() title=models.CharField(max_length=64) description=models.CharField(max_length=2056) src=models.CharField(max_length=1024, blank=True) def __str__(self): return f"{self.title} goes for a price of {self.price}, put forth by {self.creator} and here's the description: {self.description}" class bid(models.Model): user=models.ForeignKey(User, on_delete=models.CASCADE, related_name="bidder") price=models.IntegerField() def __str__(self): return f"{self.user} bid {self.price}" class comment(models.Model): title=models.CharField(max_length=64) user=models.ForeignKey class Watchlist(models.Model): user=models.ForeignKey(User, on_delete=models.CASCADE, related_name="user") listing=models.ForeignKey(listing, on_delete=models.CASCADE, related_name="listing") def __str__(self): return f"{self.user} adds {self.listing.title} to the watchlist" I hope to be able to find the title of the listing model and display it through html on watchlist. So far, I've only been able to display the whole listing model. Here is my watchlist.html: {% extends "auctions/layout.html" %} {% block body %} <h2>Watchlist</h2> {% for item in items %} <ul> {{item.listing}} </ul> {%endfor%} TODO {% endblock %} {{item.listing.title}} is what I want, but that does not work. I'm a beginner … -
Right-click while the page is running Ajax
I have a table that loads empty (no rows) and then I run an Ajax call -inside a django for-loop- to populate the table with data from a python function that each time returns one row/item. The reason I am doing this is to allow for users to be able to interact with the table while the data are loading on the background (especially useful when loading big data). I also have a jquery function that when I right-click on a row, it produces a context menu for that specific row. The problem is that the right click does not work until all data in the table are loaded. How can I make it so that the right-click script can be ran while the page is still loading? I suspect that it could have something to do with the right-click script being inside a $(document).ready(); function, but even when I remove this, nothing changes. I still cant trigger the right-click function while the Ajax is running in the background. Anyone has any ideas? PS: I found this answer to something similar: https://stackoverflow.com/a/28621626/10895906 which mentions that an Ajax call needs a time out to allow for interaction to run, but the … -
Sheduled Data Scraping of Exel local file with Django
I am currently trying to write a script that import automatically data from an excel file to a model in django, but the import task must be periodic (every day), I have already tried to make it by django import-export but I couldn't find a way to schedule this task, can someone help me or can show me on discord, Thank you. -
Broken image is shown when fetched from mysql database in django
Iam trying to fetch image from my database but the image is broken I don't know correctly what I missed Please give me a solution. VIEWS.PY def display_images(request): allimages = GetImage.objects.all() return render(request, 'show.html', {'images': allimages}) MODELS.PY class GetImage(models.Model): title = models.CharField(max_length=100) img = models.ImageField(upload_to="media/") class Meta: db_table = "gallery" URLS.PY from django.urls import path from . import views from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('show', views.display_images), ] if settings.DEBUG: urlpatterns+=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) SETTINGS.PY STATIC_URL = 'static/' STATIC_ROOT=os.path.join(BASE_DIR,'static') MEDIA_URL='/media/' MEDIA_ROOT=os.path.join(BASE_DIR,'media') SHOW.HTML !DOCTYPE html> <html lang="en"> <head> <title>Django Display Images</title> <meta charset="utf-8"> <link rel="stylesheet" .min.css"> </head> <body> <div class="container"> <table class="table table-striped"> <thead> <tr> <th>Title</th> <th>Image</th> </tr> </thead> <tbody> {% for img in images %} <tr> <td>{{img.title}}</td> <td><img src="/{{ BASIC_DIR }}/{{img.img}}" width="120"/> </td> </tr> {% endfor %} </tbody> </table> </div> </body> </html> Please give one solution regarding about this fetching images.