Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
django pagination for controller
How to add pagination here? @method_decorator(admin_decorator()) def post(self, request): try: controller = UserListController(data=request.data) return Response(status=status.HTTP_200_OK, data=controller.get_data()) except Exception as e: print(e) return Response({"message": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) -
How to do updateview in django using ajax
models.py from django.db import models # Create your models here. class Login(models.Model): username=models.TextField(max_length=30) password=models.TextField(max_length=30) class CreateProduct(models.Model): title = models.CharField(max_length=200) description = models.CharField(max_length=200) image = models.FileField(blank=True) def __str__(self): return self.title views.py from django.db import models from django.db.models import fields from django.shortcuts import redirect, render from django.views.generic import TemplateView,CreateView,FormView,ListView,DetailView from django.views.generic.edit import UpdateView from django.contrib.auth.models import User,auth from .models import CreateProduct from django.urls import reverse_lazy from django.shortcuts import get_object_or_404 # Create your views here. def home(request): return render(request,'index.html') def login(request): if request.method=="POST": username=request.POST['username'] password=request.POST['password'] user = auth.authenticate(username=username, password=password) if user is not None: auth.login(request, user) return redirect('productslist') else: return redirect('/') else: return render(request, 'index.html') class ProductsList(ListView): model = CreateProduct context_object_name = 'products' template_name = "productslist.html" class ProductsCreate(CreateView): model = CreateProduct fields = ['title','description','image'] template_name = "productscreate.html" success_url=reverse_lazy('productslist') class ProductsDetailView(DetailView): template_name = "productsdetail.html" queryset = CreateProduct.objects.all() context_object_name = 'products' model = CreateProduct class ProductsUpdate(UpdateView): model = CreateProduct fields = ['title','description','image'] template_name = "productsupdate.html" queryset = CreateProduct.objects.all() success_url=reverse_lazy('productsdetail') productdetail.html <!DOCTYPE html> {% load static %} <html lang="en"> <head> <!-- <title>Bootstrap Example</title> --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> </head> <body> <nav class="navbar navbar-inverse"> <div class="container-fluid"> <!-- <div class="navbar-header"> <a class="navbar-brand" href="#">WebSiteName</a> </div> --> <ul class="nav navbar-nav"> <li … -
How to get the name of the same file uploaded as Response when downloading in python Django
I uploaded and downloaded the file. I do not get the name of the file I uploaded when I downloaded it. I try to program in python Django, any solution to solve this. def mDownloadResume(request, userid): profile = UserProfile.objects.get(id=userid) ts = profile.up_auth_user_id print(ts) resumefilename = Resume.objects.get(rs_auth_user_id=ts) vs = resumefilename.rs_original_name us = resumefilename.rs_auth_user_id ts = resumefilename.rs_saved_name contentype = "application/pdf" filepath = os.path.join(BASE_DIR , "Resume", ts) if os.path.exists(filepath): with open(filepath, 'rb') as fh: response = HttpResponse(fh.read(), content_type=contentype) response['Content-Disposition'] = 'inline; filename=' +os.path.basename(filepath) \ return response raise Http404 -
Cant able to access the django application hosted on nginx in another system in same lan network (windows)
Not able to access the django application in another system which is hosted on nginx in window's machine under same lan network. getting "This site cant be reached" page. Please do needful -
Django redirect from form upload
From the page This page isn’t working. If the problem continues, contact the site owner. HTTP ERROR 405 From the terminal Method Not Allowed (POST): / Method Not Allowed: / [20/Dec/2021 22:00:27] "POST / HTTP/1.1" 405 0 How to redirect to the same page after page upload click. form.html->included in sidebar.html-> included in home.html <form method = "POST" action='.' enctype="multipart/form-data"> {% csrf_token %} {{ form.as_p }} <button type="submit">Upload</button> </form> views.py from django.shortcuts import render from .forms import UserProfileForm def index(request): print(request.POST) return render(request,'home.html') -
Validate a single field of Django model-form?
Actually I m working on Blood Donation And I have done almost each and everything but one thing is not working and it is in Form validation. Thanks in advance forms.py def clean_cnic(self): cnic = self.cleaned_data['cnic'] print("This is a cnic",cnic) if not User.objects.filter(cnic=cnic).exists(): return cnic existuser = User.objects.get(cnic = cnic) if existuser: previous_date = existuser.last_donation current_date = datetime.now().astimezone() print(previous_date,"-----_---",current_date) final = current_date - previous_date print("The final is -> ",final) if final < timedelta(days= 1): raise ValidationError("U have to wait 1 days to complete") return cnic def clean_blood_group(self): print("<--------This is blood_function------>") cnic = self.cleaned_data.get("cnic") blood_group = self.cleaned_data['blood_group'] print(blood_group) print("CNIC----->",cnic) obj = User.objects.get(cnic = cnic) print(obj.blood_group) if obj.blood_group == blood_group: print("I m here") return blood_group raise ValidationError("Blood group does not match") When I give blood group is correct it add data Ok and when I give wrong My raise validationError is not run. CNIC come from above validation ok its working perfectly Please tell me what's going on -
How to connect Salesforce database in django? Perform API calls using Python?
How to connect Salesforce database in django? Perform API calls using Python ? DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'salesforce_db', }, 'salesforce': { 'ENGINE': 'salesforce.backend', "CONSUMER_KEY" : 'EDIT: your key you get.......................', "CONSUMER_SECRET" : 'EDIT secret you get', 'USER': 'EDIT your@user.login.name', 'PASSWORD': 'EDIT password + security_token', 'HOST': 'https://login.salesforce.com', } } SALESFORCE_QUERY_TIMEOUT= (4, 15) -
I am getting a error "invalid escape character in string.jsonc(261)" in settings .json
I tried adding interpreter path both manually and recommended, but it didn't create .vscode folder so I only created .vscode file and copy pasted settings.json please help me with this error. -
What should be the type of Image file in isinstance() arg 2?
def setUpTestData(cls): cls.point = PickUppoints.objects.create( img=File(file="b") ) def test_it_has_information_fields(self): self.assertIsInstance(self.point.img, Image) It gives "typeError: isinstance() arg 2 must be a type or tuple of types". What should I use in isinstance() arg 2? Isn't 'Image' a type of class? -
How to use python function in django rest api?
I'm building a data analysis function using Python, and somehow I need to make a restAPI of those function using Django. Since I'm new to the API and rest API world, I've learnt Django in this past week but still had no idea how to convert those python functions into Django-like codes. Here's a sample code function I've been working on: def filter_dataset(data, period): # filter dataset for XYZ Classification Function # copy the data first then change Date into datetime format data_copy = data.copy() data_copy['Date'] = pd.to_datetime(data_copy['Date'], dayfirst=True) data_copy['month'] = data_copy['Date'].dt.month # get the last 3 months data months = data_copy.month.unique() last_3_months = months[-3:] # filtering the data based on period choice if period == 'Last 3 Months': data_period = data_copy.loc[data_copy['month'].apply( lambda x: x in last_3_months)] else: data_period = data_copy data_period.drop(columns='month', inplace=True) return data_period The function above is used to filter data based on selected months period. I want to build a restAPI using django that work like this: Let say we get the data in json: [ { 'id': 1, 'product_code': 'Product_001', 'date' : '2017-05-29, 'demand': 200 }, { 'id': 2, 'product_code': 'Product_002', 'date' : '2017-05-29, 'demand': 150 }, ] And it will return the data like this: … -
How can I use MinimumLengthValidator?
enter image description here i am trying to build register api with builtin validators of django but whenever i try, it allows me directly in to success i dont know why it does not work can anybody help me out? Please Someone HELP ME! -
Apache can't load static files from a specific Django app
I have the following project: ``` 📦 project_name ┣ 📂app_name ┃ ┣ 📂migrations (truncated) ┃ ┣ 📂static ┃ ┃ ┣ 📂css ┃ ┃ ┃ ┗📜dashboard.css ┃ ┃ ┗ ┗📜password_reset.css ┃ ┣ 📂templates (truncated) ┃ ┃ ┗ 📂password_reset (truncated) ┃ ┣ 📂templatetags (truncated) ┃ ┣ 📜__init__.py ┃ ┣ 📜asgi.py ┃ ┣ 📜constants.py ┃ ┣ 📜forms.py ┃ ┣ 📜models.py ┃ ┣ 📜settings.py ┃ ┣ 📜urls.py ┃ ┣ 📜views.py ┃ ┗ 📜wsgi.py ┣ 📂media (truncated) ┣ 📂static ┃ ┣ 📂css ┃ ┃ ┗📜dropzone_style.css ┃ ┃ ┗📜login.css ┃ ┃ ┗📜password_reset_confirm.css ┃ ┣ 📂img ┃ ┃ ┗📜csv.png ┃ ┃ ┗📜excel.png ┃ ┣ 📂js ┃ ┃ ┗📜datatables.js ┃ ┃ ┗📜dropzone.js ┃ ┃ ┗📜sidebar.js ┃ ┗ 📜favicon.ico ┣ 📂staticfiles ┃ ┣ 📂admin (truncated) ┃ ┣ 📂css ┃ ┃ ┗📜dashboard.css ┃ ┃ ┗📜dropzone_style.css ┃ ┃ ┗📜login.css ┃ ┃ ┗📜sidebar.css ┃ ┃ ┗📜style.css ┃ ┣ 📂img (empty) ┃ ┣ 📂js ┃ ┃ ┗📜datatables.js ┃ ┃ ┗📜dropzone.js ┃ ┃ ┗📜index.js ┃ ┃ ┗📜sidebar.js ┣ 📂templates (truncated) ┣ 📜.gitignore ┣ 📜db.json ┣ 📜db.sqlite3 ┗ 📜manage.py ┗ 📜requirements.txt ``` I have 2 static folders: one in the root folder and one inside of the app folder. This is the error I am getting in the browser console: There are no errors in … -
Django Channels Change HTML/Javascript For Everyone
I want to make it so if a user disconnects from the websocket their status will change to "offline" for everyone that is viewing the user's profile page. I have successfully done so for detecting when users are online but using the same code for disconnecting doesn't work. How should I go about doing this? Here's the code for the Javascript activityWS.onmessage = function(event) { var parsedDict = JSON.parse(event['data']); profileUrl = window.location.origin + '/account/' + parsedDict['user'] + '/'; if (window.location.href == profileUrl) { $('.online-status').text('Online'); } } $(window).on('beforeunload', function(event) { // won't change to offline but online changing works if (window.location.href == profileUrl) { $('.online-status').text('Offline'); } }); -
Cannot log in to token endpoint with username/password: drf token auth and custom user model, Django
I have a basic Django app using Django rest framework, a custom user model inheriting from the default, and basic token authentication. I am able to generate a token for any user by running python3 ./manage.py drf_create_token {USERNAME/EMAIL} and authenticate relevant requests with it. However, when I attempt to hit my token endpoint (in this case http://127.0.0.1:8000/api/token/, or the equivalent for the deployed app), I get { "non_field_errors": [ "Unable to log in with provided credentials." ] } My request body (application/json) is like: { "username": "test@test.com", "password": "test" } I have ensured that the user is active; that the password is correct; and that the username is the same as the email. My custom user class: class Customer(AbstractUser): first_name = models.CharField(max_length=240) last_name = models.CharField(max_length=240) email = models.EmailField(unique=True) phone_number = PhoneNumberField(unique=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now_add=True) is_active=models.BooleanField(default=True) USERNAME_FIELD = "email" REQUIRED_FIELDS = ["password", "phone_number", "first_name", "last_name", "username"] def __str__(self): return f"{self.first_name} {self.last_name}" relevant urls: urlpatterns = [ path('admin/', admin.site.urls), path('api/users/', include('customer.urls')), path('api/token/', obtain_auth_token, name="auth_token"), ] in settings.py I have the following: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_extensions', 'phonenumber_field', 'customer', 'contact', 'rest_framework', 'rest_framework.authtoken', ] ... REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema', 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.authentication.TokenAuthentication', ], } ... … -
Django import existing Ppasswords from PHP site that used password_hash()
I need to import a list of users and hashed passwords from an old PHP site that used password_hash() to a new django site. The stored passwords look like this: $2y$10$ZnxKDPbqOfACnGmQeN76o.UtdwWBFBCCLTiGnvCSvl/zqIBeVxhai I found Django password hasher using php format of function password_hash() on here when trying to look this up, and I think that will help for the NEXT step. But currently I can't setup an import process that will correctly bring over the old passwords. When I try to manually create the users during the import process it refuses the password stating "Invalid password format or unknown hashing algorithm." when I look at the users after the import runs. I think I am just going about this totally incorrectly, here is an example snippet where I create the users. usertest = User(username='testguy',email='testguy@test.com',password='$2y$10$ZnxKDPbqOfACnGmQeN76o.UtdwWBFBCCLTiGnvCSvl/zqIBeVxhai') That results in no password being store. Using the create_user function results in the user being created but with that hashed password output as their password: User.objects.create_user(username='testguy',email='testguy@test.com',password='$2y$10$ZnxKDPbqOfACnGmQeN76o.UtdwWBFBCCLTiGnvCSvl/zqIBeVxhai') How can I just get these passwords stored properly in the new database so I can move onto the next step of actually checking against those passwords? -
is it possible to customize e.g an app model field with html/css
I have this model field that holds the description(image from django-admin) but when I print it out on the page it looks like the following(image from django-admin): enter image description here so is it possible to edit the description field so it looks better and is more readable using html/css etc? -
what's the most efficient way to check for orphans when deleting objects in Django?
Say I have a model with a Things table and a table of relationships between the things called ThingRelations. It should not be possible to delete a Thing when there are ThingRelations that point to it, and when there are no more ThingRelations pointing to a given Thing, it should be deleted. I'm currently trying to implement that with signals.post_delete like this: from django.db import models class ThingRelation(models.Model): first_thing = models.ForeignKey('Thing', on_delete=models.PROTECT) second_thing = models.ForeignKey('Thing', on_delete=models.PROTECT) class Thing(models.Model): name = CharField(max_length=260) @receiver(models.signals.post_delete, sender=ThingRelation) def check_relation_and_delete(sender, instance, *args, **kwargs): for thing_id in [instance.first_thing, instance.second_thing]: first_thing_match = ThingRelation.objects.filter(first_thing=thing_id).exists() second_thing_match = ThingRelation.objects.filter(second_thing=thing_id).exists() if not first_thing_match and not second_thing_match: Thing.objects.get(pk=thing_id).delete() Is this the most efficient way to find and delete orphaned Things? I'm very new to databases in general, but won't filtering the (potentially quite large) Things table four times for every deleted ThingRelation be slow when deleting many objects at once? Is there some kind of SQL or Django functionality that makes it so this code isn't run for every object in a bulk operation? -
Django allauth password reset doesn't work when clicking the link from email, but works otherwise
What is supposed to happen: The request is completely handled by the django-allauth package which is supposed to detect the token, save it to the session, redirect to the 'change your password' page, and finally load the token from the session. The problem: The password reset function does not work when clicking the link from the email (Bad Token), but if I copy-paste the link into the url bar or click the href in Inspect Element mode it DOES work. Note: It also works if I reload the page after seeing "Bad Token" I click the link from inside an email app on my mobile device The error: When you click the link from your email you make it all the way to the 'change your password' page but you get a "Bad Token" error as no Token was found in the session. Format of the link emailed to the user: <a href="https://subdomain.url.com/ls/click?upn=DEcd6nIgEEAvb4Zt..." rel="noreferrer" safedirecturl="https://www.google.com/url?q=https://sudomain.url.com/...">link text</a> For clarification, both the href and the safedirecturl work fine if I copy-paste it into the url bar Conclusion: So far, these are my only guesses at the cause of the issue: An external website is referring the user to the page. The safedirecturl … -
how do I manage deletion with multiple foreign keys to the same table in Django?
Say I have a model with a Things table and a table of relationships between the things called ThingRelations. It should not be possible to delete a Thing when there are ThingRelations that point to it. This is how I'm trying to implement that: from django.db import models class ThingRelation(models.Model): first_thing = models.ForeignKey('Thing', on_delete=models.PROTECT) second_thing = models.ForeignKey('Thing', on_delete=models.PROTECT) class Thing(models.Model): name = CharField(max_length=260) How do I automatically delete a Thing when there are no more ThingRelations pointing to it? -
How to define one to many relationship in django
I have a condition that has one to many relationship scenarios because I will have multiple projects inside one account. models.py class Account(models.Model): name = models.CharField(max_length=255, default='') class Project(models.Model): account = models.ForeignKey(User, on_delete=models.CASCADE, null=True) how can I manage this scenario, currently I'm getting the following error: django.db.utils.ProgrammingError: relation "project_account_id_7d9b231b" already exists -
Get many to many relationship object from parent model django
I have the following models and I want to query that if any tag exists in any package room so the query should not return that tag, only return those tags which don't have any package room. models.py class PackageRoom(models.Model): tags = models.ManyToManyField(Tag) class Tag(models.Model): name = models.CharField(blank=True, null=True) views.py queryset = PackageRoom.objects.filter(project_id=project_id).prefetch_related('tags') serializer = PackageRoomListSerializer(queryset, many=True) tag_qs = Tag.objects.filter(project_id=project_id) tag_slz = TagSerializer(tag_qs, many=True) return Response({ 'room_packages': serializer.data, 'individual_packages': tag_slz.data }) -
ajax problem with Django {{ form|crispy }} vs. {{ form.as_p }}
I have a set of dependent dropdowns that depend on the ajax function to work. The ajax works fine with {{ form.as_p }} but it seems never fire when I replace {{form.as_p}} with {{form|crispy}} . As you can see in my html, the only difference is in which one is commented out. {% extends "base.html" %} {% load tailwind_filters %} {% block content %} <div class="max-w-lg mx-auto"> <a class="hover:text-blue-500" href="{% url 'leads:lead-list' %}" >返回客户名单</a > <div class="py-5 border-t border-gray-200"> <h1 class="text-4xl text-gray-800">{{lead.name}}</h1> </div> <form id="leadForm" method="POST" class="mt-5" enctype="multipart/form-data" data-cities-url="{% url 'leads:ajax_load_cities' %}" novalidate> {% csrf_token %} {{ form|crispy }} {% comment %} {{ form.as_p }} {% endcomment %} <div class="flex py-6 "> <a href="{% url 'leads:lead-delete' lead.pk %}" class="flex ml text-white bg-indigo-200 border-0 py-2 px-6 focus:outline-none hover:bg-indigo-600 rounded-md"> Delete</a> <button type='submit' class=" ml-auto text-white bg-blue-500 hover:bg-blue-600 px-6 py-2 rounded-md"> Submit </button> </div> </form> </div> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script> $("#id_region").change(function () { //var dateNow = new Date().getTime() + Math.random(); var url = $("#leadForm").attr("data-cities-url"); var regionId = $(this).val(); $.ajax({ url: url, data:{ 'region': regionId }, success: function (data){ $("#id_city").html(data); } }); }); </script> {% endblock %} -
Problem with deploiement in Heroku for Django APP
Well I've a problem that I can't find a solution. I've already try to deploy to heroku with mysql and postgresql and i've always some kind of a error. The app works just fine in local. The log: Cannot execute silk_profile as silk is not installed correctly. Traceback (most recent call last): File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/base/base.py", line 230, in ensure_connection self.connect() File "/app/.heroku/python/lib/python3.9/site-packages/django/utils/asyncio.py", line 25, in inner return func(*args, **kwargs) File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/base/base.py", line 211, in connect self.connection = self.get_new_connection(conn_params) File "/app/.heroku/python/lib/python3.9/site-packages/django/utils/asyncio.py", line 25, in inner return func(*args, **kwargs) File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/postgresql/base.py", line 199, in get_new_connection connection = Database.connect(**conn_params) File "/app/.heroku/python/lib/python3.9/site-packages/psycopg2/init.py", line 122, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError: connection to server at "127.0.0.1", port 5432 failed: Connection refused Is the server running on that host and accepting TCP/IP connections? The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/app/manage.py", line 22, in main() File "/app/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/init.py", line 425, in execute_from_command_line utility.execute() File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/init.py", line 419, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/base.py", line 373, in run_from_argv self.execute(*args, **cmd_options) File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/base.py", line 417, in execute output = self.handle(*args, **options) File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/base.py", line 90, in wrapped res = handle_func(*args, **kwargs) File … -
Its necessary to start an app in Django to load javaScript files?
i'm making a portfolio on Django + Python, and i have successfully loaded all the assets/templates from my project, (such as .css, .jpg, .png files) but the javascript files '.js' are not working. i saw several questions about this issue with Javascript, and i tried all of the solutions that i saw. i have the {% load static %} putted in the beginning of my index.html file i also putted the <script src="{% static 'assets/js/main.js' %}"></script> before each call to the files my static settings are the following: BASE_DIR = Path(__file__).resolve().parent.parent STATIC_ROOT = os.path.join(BASE_DIR, 'static/') STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'portfolio/static/') ] everything seems to be OK in the settings.py file , and the website can load all the images, css, etc.. but as i mentioned before, the javascript seems to not loading. i don't have an app created in my Django project, the dir tree is the following: ├── /Desktop/portfolio ├── manage.py ├── portfolio │ ├── asgi.py │ ├── __init__.py │ ├── settings.py │ ├── static │ │ ├── assets │ │ │ ├── css │ │ │ │ ├── files.... │ │ │ ├── js │ │ │ │ ├── breakpoints.min.js │ │ │ │ ├── … -
Using Django's Bulk Update Correctly to Append to List
I have a dictionary list of items in validated_data which I currently update the user and save to db. for book in validated_data: book.user = self.context['request'].user obj.save() I would like to make use of Django's bulk update instead. I found the following example: Which I modified like so: for book in validated_data: book.user = self.context['request'].user Book.objects.bulk_update(validated_data, update_fields = ['user']) However, I don't see how this can work. First, validated_data was never actually updated in this example. How can I update each item in validated_data to contain my new value?