Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
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? -
Getting 404 code on Django TestCase with valid args on revers function
I need help with Django TestCase, and reverse function. I'm not getting what I'm doing wrong, but all my cases are response with 404. In short the project suppose to get url and generate short url and redirect it. It works but I don't understand why the TestCases are not Pls help! view.py from .models import UrlTable, ShortUrlTable @csrf_exempt def create(request): if request.method == 'POST': try: post_url = json.loads(request.body) except Exception as e: return HttpResponseBadRequest(str(e),content_type='text/plain') if UrlTable.objects.filter(url_text=post_url["url"]).exists(): url = UrlTable.objects.get(url_text=post_url["url"]) short = ShortUrlTable(url=url, short_url_text=create_random_code(), num_clicks=0) short.save() else: url = UrlTable(url_text=post_url["url"]) try: url.full_clean() except ValidationError as v: return HttpResponseBadRequest(str(v),content_type='text/plain') url.save() short = ShortUrlTable(url=url, short_url_text=create_random_code(), num_clicks=0) short.save() domain = request.get_host() msg = str(url.url_text+" ->"+domain+"/s/"+short.short_url_text) return HttpResponse(msg, content_type='text/plain') elif request.method == 'GET': msg = str("Hello World") return HttpResponse(msg, content_type='text/plain') def redirect_url_view(request, url_short_part): try: shorter_link = ShortUrlTable.objects.get(short_url_text=url_short_part) shorter_link.num_clicks += 1 print(shorter_link.num_clicks) shorter_link.save() return HttpResponseRedirect(shorter_link.url.url_text) except Exception: raise Http404('Sorry this short link is not exist') urls.py from django.urls import path from . import views urlpatterns = [ path('create', views.create, name='create'), path('s/<str:url_short_part>', views.redirect_url_view, name='redirect'), ] class TestViews(TestCase): def setUp(self): self.client = Client() self.create_url = reverse('create') self.url = UrlTable(url_text="https://google.com") self.url.save() self.short = ShortUrlTable(url=self.url, short_url_text=create_random_code(), num_clicks=0) self.short.save() self.url_short_part = self.short.short_url_text self.redirect_url = reverse('redirect',args=[self.url_short_part]) self.fake_url_short = 'aa' self.redirect_url = … -
Django Tailwind Typography Prose not working properly
I want to learn tailwind and I am using Django, but I occured a problem that typography isn't working, I don't know why.. because other tailwind classes works very well. I am using that to run tailwind with django django-tailwind.readthedocs.io/ my html <div class="prose lg:prose-lg prose-slate"> {{ post.post_text | safe}} </div> my config tailwind contains in plugin section require('@tailwindcss/typography'), that line that I know is necessery How can I make that prose class works like it should? Other classes from standard tailwind works properly. I know also that css is generated for prose, and text is html with all and others but they are without tailwind-css Cheers -
Django get_absolute_url calling same URL as current page
I am trying to add a "+ New Review" link to a page on my Django site that will take you to a 'uuid:pk/new_review/' page that houses a form to submit a URL for a specific post. I am currently facing issues where the link is redirecting to the same page, and I think the issue is stemming from my use of get_absolute_url(), which I am still having trouble getting my head around. urls.py urlpatterns = [ path('<uuid:pk>/', ListingDetailView.as_view(), name = 'listing_detail'), path('<uuid:pk>/new_review/', NewReview.as_view(), name = 'new_review'), ] views.py class ListingDetailView(LoginRequiredMixin, DetailView): model = Listing template_name = 'listing/listing_detail.html' context_object_name = 'listing_detail' login_url = 'account_login' class NewReview(LoginRequiredMixin, CreateView): model = Review template_name = 'listing/new_review.html' fields = ['review'] context_object_name = 'new_review' def form_valid(self, form): form.instance.user = self.request.user form.instance.listing_id = get_object_or_404(Listing, pk = self.kwargs['pk']) return super().form_valid(form) models.py class Review(models.Model): listing_id = models.ForeignKey( Listing, on_delete=models.CASCADE, related_name='reviews', ) user = models.ForeignKey( get_user_model(), on_delete=models.CASCADE, ) review = models.TextField(max_length=5000) def __str__(self): return self.listing_id def get_absolute_url(self): return reverse('listing_detail', args=[str(self.listing_id)]) listing_detail.html ... <p><a href="{{ new_review.get_absolute_url }}">+ New Review</a></p2> ... -
External API in django
I want to call an external API in my django app that build with django Restfull How I can call it? for example in one of the my urls there is an API that deliver wheather status from another API Can every body help me? thank you