Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django `squashmigrations` leaving lots of RemoveField
I am trying to use Django manage.py squashmigrations to reduce the number of migration files and migration operations, after years of accumulation. Django should supposedly optimize the migrations and it does so to some extent. Other cases, that should be obvious optimization are missed though, for example below where a simple AddField+RemoveField field is not. Only the AddField gets inlined into the CreateModel, but then the RemoveField still remains, instead of completely leaving out the field from CreateModel. Ideally, there shouldn't be a single RemoveField left after a squash, if I'm not mistaken. Migration 1: Add the model class Migration(migrations.Migration): dependencies = [("data", "0104")] operations = [ migrations.CreateModel( name="MyModel", fields=[... ] ) ] Migration 2: Add a field to the model class Migration(migrations.Migration): dependencies = [("data", "0107")] operations = [ migrations.AddField( model_name="mymodel", name="process_name", field=models.CharField(default=None, max_length=300, null=True), ), ] Migration 3: Remove the same field from the model class Migration(migrations.Migration): dependencies = [("data", "0121")] operations = [migrations.RemoveField(model_name="mymodel", name="process_name")] Resulting squashed migration: class Migration(migrations.Migration): replaces = [...] initial = True operations = [ migrations.CreateModel( name="MyModel", fields=[ ( "process_name", # Should be possible to leave out ??? models.CharField(default=None, max_length=300, null=True), ), ], ), migrations.RemoveField(model_name="mymodel", name="process_name"), # ??? ] Is this expected or what … -
Issue Displaying All Colors of a Product Variant in Django Template
I'm working on a Django application where I have a Product model with a many-to-many relationship with a Color model. I want to display all colors associated with a product variant on its detail page. However, when I click on a specific color (e.g., white), the page only shows that color instead of all available colors for the product variant. Here’s the relevant code: Models: class Color(models.Model): code = models.CharField(max_length=7) # Hex color code image = models.ImageField(upload_to='colors/') # Image field for color representation product_varients = models.ManyToManyField('Product', related_name='color_variants', blank=True) class Product(models.Model): pid = ShortUUIDField(length=10, max_length=100, prefix="prd", alphabet="abcdef") user = models.ForeignKey(CustomUser , on_delete=models.SET_NULL, null=True) category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True, related_name="category") color = models.ManyToManyField(Color, blank=True) View Function: def product_varient_detail_view(request, pid): try: product_variant = Product.objects.get(pid=pid) except Product.DoesNotExist: return render(request, "core/error_page.html") wishlist = wishlist_model.objects.filter(user=request.user) if request.user.is_authenticated else None sub_category = SubCategory.objects.all() categories = Category.objects.prefetch_related('subcategories').order_by('?')[:4] nav_category = Category.objects.filter(special_category=True).prefetch_related('subcategories').order_by('?')[:4] # Initialize variables colors = product_variant.color_variants.all() # Get the colors of the product variant linked_colors = set() # Use a set to avoid duplicates # Get linked colors for color in colors: for linked_product in color.product_varients.exclude(id=product_variant.id): # Exclude current product linked_colors.update(linked_product.color_variants.all()) # Update the set with linked product colors # Convert linked_colors back to a list for the … -
How to Implement Model Versioning in Django Without Affecting Transactional Data
MODELS Transaction Model class TransactionOrders(models.Model): product = models.ForeignKey(Product, on_delete=models.DO_NOTHING) customer = models.ForeignKey(Customer, on_delete=models.DO_NOTHING) ... class Product(models.Model): name = models.CharField(max_length=55, unique=True) title = models.TextField() ... class Customer(models.Model): customer_id = models.CharField(max_length=55, primary_key=True) name = models.CharField(max_length=100) # there might be more models Imagine we have some entries in transaction model now admin updated or soft deleted some entries in product | customer models issue: Old data modified either with new value or showing ids (whose entries are updated | deleted respectively) Requirement: How can I avoid so above issue so that when user creating new order updated value reflected & when user visit history order then it show's entries which has values at that time Note: If I haven't able to clarify let me know I try to put more data to make my query understandable -
Django: Unable to display colors of linked products
I'm having trouble displaying the colors of linked products in my Django template. I have a Product model with a many-to-many relationship with a Color model, and I want to display the colors of the linked products. Here is my view: def product_varient_detail_view(request, pid): # ... colors = [] linked_colors = [] if product_variant.color.exists(): colors = product_variant.color.all() if product_variant.color.exists(): for color in product_variant.color.all(): for linked_product in color.product_varients.all(): if linked_product != product_variant: linked_colors.extend(linked_product.color.all()) context = { # ... 'colors': colors, 'linked_colors': linked_colors, } return render(request, "core/product_varient_detail.html", context) And here is my template: {% if colors %} {% for c in colors %} <div class="color__radio"> <input type="radio" id="color_{{ c.id }}" name="color" data-image-url="{{ c.image.url }}" class="color-input" data-url="{% url 'core:product_varient_detail' c.product_varients.first.pid %}?color={{ c.coid }}"> <label class="color__radio-label" for="color_{{ c.id }}" style="background-color: {{ c.code }};"></label> </div> {% endfor %} {% endif %} {% if linked_colors %} {% for c in linked_colors %} <div class="color__radio"> <input type="radio" id="color_{{ c.id }}" name="color" data-image-url="{{ c.image.url }}" class="color-input" data-url="{% url 'core:product_varient_detail' c.product_varients.first.pid %}?color={{ c.coid }}"> <label class="color__radio-label" for="color_{{ c.id }}" style="background-color: {{ c.code }};"></label> </div> {% endfor %} {% endif %} However, the colors of the linked products are not being displayed. I've tried debugging the code, but I'm not … -
Where do I put Django Debug Terminal in middleware
Django Debug Terminal's documentation says The order of MIDDLEWARE is important. You should include the Debug Toolbar middleware as early as possible in the list. However, it must come after any other middleware that encodes the response’s content, such as GZipMiddleware. But this can be a bit tricky. For example, in my settings.py I have MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ] In this situation is the best place to put debug_toolbar.middleware.DebugToolbarMiddleware right after django.middleware.common.CommonMiddleware since that uses force_text while AuthenticationMiddleware, SessionMiddleware and MessageMiddleware don't seem to encode anything? -
Why does Django Rest Framework Pagination work with Django.http JsonResonse() and not rest_framework.response Response()
I've followed the tutorial on enabling/creating custom pagination for ModelViewSets in Django Rest Framework (DRF). But the custom pagination doesn't show up as part of the content of the response. I only get my results split according to the 'PAGE_SIZE' setting in an object labeled data with no count, or page_size as defined in my custom pagination class. I added the following lines in my setting.py file: REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'core.pagination.CustomPagination', 'PAGE_SIZE': 2, ... } Custom pagination class: from rest_framework import pagination from rest_framework.response import Response class CustomPagination(pagination.PageNumberPagination): page_size = 2 def get_paginated_response(self, data): return JsonResponse({ 'page_size': self.page_size, 'count': self.page.paginator.count, 'results': data }) My ModelViewSet class PersonViewSet(viewsets.ReadOnlyModelViewSet): """ A simple ViewSet for listing or retrieving and creating people. """ queryset = Person.objects.all() permission_classes = (IsAuthenticated,) serializer_class = PersonSerializer pagination_class = CustomPagination I have tried changing the ModelViewSet to various other types such as genericViewSet and defining my list() functions etc. The results from the list API endpoint I expected: { "page_size": 2, "count": 2548, "results": [ { "type": "Person" }, { "type": "Person" } ] } The results from the list API endpoint I got: { "data": [ { "type": "Person" } }, { "type": "Person" } } ] … -
Encountering 500 Internal Server Error on Django API POST request
I am encountering a 500 Internal Server Error when trying to send a POST request to a Django API to create an object. I have checked my code but cannot identify the source of the issue. Here’s the code I’m using: Serializer class DeliverableSerializer(serializers.ModelSerializer): class Meta: model = Deliverable fields = ("num", "project", "reviewer", "deliverable_type", "description", "due_date", "id", "draft") Views class DeliverableAPIView(APIView): def post(self, request, format=None): serializer = DeliverableSerializer(data=request.data) if serializer.is_valid(): instance = serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) def put(self, request, pk, format=None): try: deliverable = Deliverable.objects.get(pk=pk) serializer = DeliverableSerializer(deliverable, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) except Exception as e: return Response({"error": "An unexpected error occurred."}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) URLs path('api/deliverables/', DeliverableAPIView.as_view(), name='deliverable-list'), # For POST path('api/deliverables/<int:pk>/', DeliverableAPIView.as_view(), name='deliverable-detail'), # For PUT POST Request in My Script def post_data(endpoint, data): """Send data to the API via POST request.""" try: response = requests.post(API_URL + endpoint, json=data, timeout=10) response.raise_for_status() # Raises an HTTPError for bad responses return response.json() # Return the JSON response if needed except requests.exceptions.HTTPError as err: raise Exception(f"HTTP error occurred while posting to {endpoint}: {err}") # For HTTP errors except requests.exceptions.RequestException as err: raise Exception(f"Error posting data to {endpoint}: {err}") When I try to … -
Simple JWT TokenRefreshView: response has two types
I'm having trouble accessing the data attribute on a Response object in Django Rest Framework after refreshing the access token. factory = APIRequestFactory() new_request = factory.post( "/api/token/refresh/", {"refresh": refresh_token}, format="json", ) new_request.META["CONTENT_TYPE"] = "application/json" refresh_view = TokenRefreshView.as_view() refresh_response = refresh_view(new_request) print(type(refresh_response)) refresh_response.data["message"] = "Token refresh successful" When I run this code, the print statement correctly outputs <class 'rest_framework.response.Response'>. However, Pylint is complaining that I cannot access the data attribute. Cannot access attribute "data" for class "HttpResponse" Attribute "data" is unknownPylancereportAttributeAccessIssue -
my ide doesnt recognize django-admin it says django is already installed
so basically iam currently using vscode as my ide and i try to install django and it says the requirements already satisfied however when i try to run django-admin and start a project it doesnt recognize it and gives an error saying: django-admin : The term 'django-admin' is not recognized as the name of a cmdlet, function, script file, or operable program. i tried the same thing on pycharm and it works perfectly and im looking for solutions everywhere i have tried uninstalling django but it didnt work -
Where remove or set initial rows for database in Django?
I store some temporary data in a database linked to a web socket. After a server reboot, the web sockets die and I want to delete all data from the corresponding table. Tell me where ideologically this should be done or such data should not be stored in the database at all? I tried putting this block in AppConfig.ready but the console warning says it's the wrong place. from django.apps import AppConfig class GameConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'game' def ready(self) -> None: LobbySetting = self.get_model('LobbySetting') LobbySetting.objects.all().delete() Warning in console: RuntimeWarning: Accessing the database during app initialization is discouraged. To fix this warning, avoid executing queries in AppConfig.ready() or when your app modules are imported. warnings.warn(self.APPS_NOT_READY_WARNING_MSG, category=RuntimeWarning) -
Web Socket connection failed
On my website i am using Django, the WebSocket works fine on localhost but when i push it to VPS (Virtual private server) i get the error of WebSocket connection to wss://domain_name/ws/admin/pending/products/ failed. this is my asgi.py: import os import django from channels.auth import AuthMiddlewareStack from channels.routing import ProtocolTypeRouter, URLRouter from django.core.asgi import get_asgi_application import api.routing os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Naviguih_backend.settings") django.setup() application = ProtocolTypeRouter( { "http": get_asgi_application(), "websocket": AuthMiddlewareStack(URLRouter(api.routing.websocket_urlpatterns)), } ) and my routing.py: from django.urls import path from .consumers import AdminNotificationConsumer, NotificationConsumer websocket_urlpatterns = [ path("ws/notifications/", NotificationConsumer.as_asgi()), path("ws/admin/pending/products/", AdminNotificationConsumer.as_asgi()), ] I read some solutions that says you need to configure the Nginx to forward port and here is my configuration: server { server_name domain_name; client_max_body_size 25M; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /ws/ { proxy_pass http://127.0.0.1:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/domain_name/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/domain_name/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = domain_name) { return 301 … -
Python django model not pulling the table name, returning the project name instead
I have created both a django and a python project directory structure is analysis db_router models settings urls wsgi settings compareTemplates apps models tests utils views My model looks like this class Plans(models.Model): PROJECT_NAME = models.TextField() class Meta: db_table = 'schema.table' # specify the schema and table name managed = False # Prevent Django from managing the table schema def __str__(self): return self.PROJECT_NAME I have the database set up properly in the settings file and I am trying to see if my model can connect to it I ran: python manage.py shell from compareTemplate.models import Plans print(Plans._meta.db_table) the value returned is "compareTemplate_plans" I was not expecting that, I was looking for "schema.Table" This is my first real app in django, but I cannot figure out why the result is the project name. Thanks -
Unsupported lookup 'phone_number' for ForeignKey or join on the field not permitted on Multi Table inherited django models
I've 2 models here, BaseTransaction and AccountTransaction. Each of them are seperate model. But I've created AcccountTransaction model by inheriting BaseTransaction. Each of them has tables. Problem is when I add any field of BaseTransaction to AccountTransaction admin and try to search it's returning error below in title. class BaseTransaction(mixins.DeviceForTransactionMixin): """ Base class for transactions. """ # Choices: Debit (income) or Credit (expense) # NOTE: Income means the transactions to wallet transaction_type = models.CharField( choices=choices.TransactionType.choices, max_length=6, default=choices.TransactionType.CREDIT, db_index=True, ) # Choices: Auto or Manual # Auto: Automatically transfer the money to the GasMeter by cron job # Manual: Manually transfer the money to the GasMeter by user transfer_type = models.CharField( choices=choices.TransferType.choices, max_length=6, default=choices.TransferType.MANUAL, db_index=True, ) # Choices: Pending, On hold, Success, Failed, Canceled # Pending: The transaction is pending (on created) # On hold: The transaction is on hold (on hold) # Success: The transaction is successful (success) # Failed: The transaction is failed (failed) # Canceled: The transaction is canceled (canceled) status = models.CharField( choices=choices.TransactionStatus.choices, max_length=8, default=choices.TransactionStatus.PENDING, db_index=True, ) # To find out where the money came from # Choices: Card, Wallet source = models.CharField( choices=choices.TransactionSource.choices, max_length=8, db_index=True, ) # To find out where the money went # Choices: … -
Adding inlines to existing User model changes User admin pages
I have Domain model with a many-to-many user field to the existing User model. I want a Domain select field when I Add or Change a User on these User Admin pages. I used admin.TabularInline to achive this. The attached images show how changed the Add page after add inlines to the code. The minimal fieldset extended to a full fieldset what Django uses when someone edits an existing user, and the fieldsets completely mixed compared to the original page without inlines. Original Add User page The changed Add User page This is the actual code I tried, and the image above shows the working inlines with the Domain field, but I don't want to change the rest of the page. I'm satisfied with the existing Django User model and templates, I don't want a Custom User model and templates either, if I can avoid that. # model.py from django.db import models from django.contrib.auth.models import User from django.utils.translation import gettext as _ class Domain(models.Model): domain = models.CharField(_('Domain name'), max_length=100) master_dns_server = models.CharField(_('Master DNS server'), max_length=100, blank=True, default='') updatekey_secret = models.CharField(_('Key'), max_length=255, blank=True, default='') updatekey_name = models.CharField(_('Key name'), max_length=50, blank=True, default='') updatekey_algorythm = models.CharField(_('Key algorythm'), max_length=50, blank=True, default='') last_transfer = models.DateTimeField(_('Last … -
how can I save and continue if WebDriverWait did not find the class
I want that if WebDriverWait didn’t find what it was looking for, continue the cycle and save it in the database, I tried giving the src_iframe variable and checking if not src_iframe but it didn’t help ` try: drivers.get(film_url) iframe = WebDriverWait(drivers, 8).until( ec.presence_of_element_located((By.ID, "cinemaplayer-iframe")) ) src_iframe = WebDriverWait(drivers, 8).until( lambda d: iframe.get_attribute('src') != '' ) if not src_iframe: film_instance.is_completed2 = True film_instance.save() continue ` -
Large file download fails on slow network using HTTP/2 and AWS ALB
Given the following architecture: client <-> AWS ALB <-> uwsgi <-> Django The client fails to download a 12MB file when using HTTP/2 (the default), but works using HTTP/1.1. The file is streamed through Django for authentication purposes (it's fetched from a third party service). Here is an example of failure (I'm using a Socks proxy to limit bandwidth): $ curl -x socks5://localhost:1080 https://example.com/file.pdf --output "file.pdf" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 79 12.6M 79 10.0M 0 0 61254 0 0:03:36 0:02:51 0:00:45 64422 curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1) However the same command with the flag --http1.1 works fine. This fails when I limit downloads to 512kbps - it works at 1024Kbps. I've not looked for the sweet spot, it's not important. Notes: This also fails with a browser, it's not a curl issue Using curl with -v doesn't give any additional information. uwsgi does not output any errors. As far as it's concerned it did it's job. This is the output: [pid: 44|app: 0|req: 2603/9176] [ip] () {34 vars in 639 bytes} [Wed Oct 16 09:29:29 2024] GET /file.pdf => … -
Django Authentication Timeout Error (H12) on Heroku with MongoDB Atlas
I have a question regarding an issue I'm facing. I built an authentication system in Django and connected it to a MongoDB Atlas database. The website is deployed on Heroku, but I'm encountering a timeout error on Heroku (Error H12). I've already checked the database connection, and it seems to be working. I also changed the timeout duration to 60 and 120 seconds, but neither resolved the issue. What could be causing this error? ERROR MESSAGE : heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=XXXX (i changed my host name).herokuapp.com request_id=3f41-4c44-8740-a56e6191eb53 fwd="xx.xx.xx.xxx" dyno=web.1 connect=1ms service=30000ms status=503 bytes=0 protocol=https I checked the MongoDB Atlas connection, and it appears to be working fine. I also adjusted the timeout settings, increasing the timeout to 60 and 120 seconds, hoping this would resolve the H12 error on Heroku. However, I was expecting the website to load properly without timing out, but the issue persists despite these changes. -
How can I obtain Session Variables if the sessions change after an api call?
I am going through an official example of how to implement Oauth2 for using the quickbooks API. I am having trouble getting the state_token from the session variables within the callback view. Whenever I ise the oauth view it sends an authorization request to the quickbooks server. The request gives me a state token and a url to use to get an authorization code to use other APIs in quickbooks. I was able to print the state token in the oauth view by just printing "request.session['state']". This lets me now that it is being saved in the session. So when I redirect to the given url, Quickbooks sends me a code with the same state_token it gave me using the callback view in this example. The callback endpoint is requested by the Quickbooks server for validation purposes to make sure the state_token given back and the state_token in the session are the same, otherwise it'll return an error. This callback endpoint was given by me to Quickbooks website. But whenever I try and retreive the state_token within the callback view, it is always null/None. So whenever the callback view checks if the state tokens are the same in state_tok != … -
Adding users to my circle.so communtiy using API
is it possible to add users to my Circle.so community using api? I don't understand the documentation regarding this. if it is possible, how would i go about it? -
nginx fails to start for readonly filesystem
i am trying to configure nginx but by default it creates some directories at location /var/lib/nginx , /etc/nginx i am looking for nginx to create these directories at a different location eg /tmp other than /var/lib , as /tmp is mounted as a different volume in the setup which i have currently where the filesystem is set to be readonly and when the filesystem is set to be readonly nginx fails with the error unable to mkdir() How can i configure nginx to do so ? i am able to add locations for access , error , body , fastcgi , scgi and uwsgi Here is my conf file which has been modified to -
Error in drf-social-oauth2 framework operation
According to the documentation created an Application with default settings. Then I configured python_social_auth, but when calling http://127.0.0.1:8000/auth/login/vk-oauth2/ I get an error ValueError at /auth/login/vk-oauth2/ not enough values to unpack (expected 2, got 1) Exception Location: ..\.venv\Lib\site-packages\social_core\utils.py, line 58, in module_member This is the function where everything stops: def module_member(name): mod, member = name.rsplit(‘.’, 1) module = import_module(mod) return getattr(module, member) How can I fix further work? -
Django change on_delete at runtime
Story I am making a Jurnal app. Currently working on synchronization across multiple machines. I want to synchronize model by model, not the whole database at once. I even allow synchronization of just a few entries, image: The current problem I am facing is replacing the data of a model with the new synchronized data. I have the new database for the model (not all models) in JSON. Other models have ForeginKey to the data being changed (with on_delete=CASCADE). I have a mapping as a dict {old_pk : new_pk...}. I will use that to update other objects ForeginKeys to the objects being synchronized (whose pks will change). Problem I want to delete the old database without CASCADEing the deletion. I would like to set on_delete to DO_NOTHING temporarily until I finish the migration. Note: ReadAt code contains: read_by = models.ForeignKey( Person, on_delete=models.CASCADE, # change temporarily to DO_NOTHING at runtime ) By changing on_delete at runtime I could do: # DELETE OLD DATA ReadAt.on_delete=DO_NOTHING # pseudo code I want to achieve Person.objects.all().delete() # without code above, this deletes all ReadAt # LOAD NEW DATA with open("person_file.json", mode="w+", encoding="utf-8") as myfile: myfile.write(json.dumps(data_new_server)) call_command("loaddata", "person_file.json") # Then fix the PKs of ReadAt with … -
Django Azure Web App receiving 'Bad Request (400)' when accessed via the custom domain but works with the Azure provide default domain
I am deploying a Django Azure Web App and have added a custom domain that I bought off GoDaddy to it. I have also bound an SSL certificate provided by Azure to it. When I access the website via the default Azure domain, I'm able to access it but from the custom domain the server returns a 400 Bad Request. I've added to the list of CSRF_TRUSTED_ORIGINS as well as ALLOWED_HOSTS list the default domain as well as the custom domain. I have selected from the configuration on Azure Web App the option to redirect HTTP request to HTTPS. I have also added the DNS records (A and TXT) in GoDaddy to point to the server's public IP. May I have suggestions on things I could do to get it working? I am a novice at this and it's my first time setting up a website. I tried the following HTTPS settings in the settings.py file but it hasn't worked out, and I'm not too sure if I'm approaching it right either, thought I'd give it a go. SECURE_SSL_REDIRECT = True SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') SECURE_BROWSER_XSS_FILTER = True SECURE_CONTENT_TYPE_NOSNIFF = True X_FRAME_OPTIONS = 'DENY' … -
VS code Python Django debugger dont stop on breakpoints
Config: "version": "0.2.0", "configurations": [ { "name": "Python Debugger: Django", "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/anfisa1sprint-master/anfisa_for_friends/manage.py", "args": [ "runserver" ], "justMyCode": false, "stopOnEntry": true, "django": true, "autoStartBrowser": true } ] } When i start debugger it starts the server, but i dont see any information in logs when i browse http://127.0.0.1:8000/ no logs at all about requests, status codes etc in the terminal. When i trying to trigger view (via visiting http://127.0.0.1:8000/about/ for example) it does not stop at breakpoints at all but opens the page on browser correctly -
Redirecting after making PUT request: can I redirect with GET request instead?
For my Django project, I have a primary model, Book, and an associated BookViewSet (from Django REST Framework). From the frontend, it's possible to edit other objects like Page, which POSTs to a corresponding PageViewSet. Changes to Page objects will also affect the Book, so I want to return an updated BookViewSet after processing changes to the Page. After processing a PUT request for the Page via the PageViewSet, I've tried leveraging the redirect shortcut to send the request to the BookViewSet, like this: return redirect('/books/10', pk=book_id) I expected (and hoped) this would make a GET request so that the backend would return an updated Book via the BookViewSet using the "retrieve" method. However, it seems like the BookViewSet still receives PUT request, which means the request will be sent to the BookViewSet's "update" method. Is this expected? If so, is there a way I can "get" an updated Book view after making changes to Page? I can achieve this by putting that logic into the BookViewSet's "update" method, but I already have that logic in the "retrieve" method and don't want to duplicate it. I recently found this pattern described as "post, redirect, get" and am not sure if …