Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Having problems with message tags
*trying to create dynamic responses depending on user input but no alert button even appears. but when i get rid of {% for message in messages%} an empty alert button appears. ** here are sections of the code views.py file from django.shortcuts import render, redirect from django.contrib.auth.models import User from django.contrib import messages from django.contrib.auth import authenticate, login, logout def signup(request): if request.method == "POST": username = request.POST.get('username') email = request.POST.get('email') pass1 = request.POST.get('pass1') pass2 = request.POST.get('pass2') if pass1 != pass2: messages.info(request, "Password is not matching") return redirect('/authapp/signup/') try: if User.odjects.get(username=get_email): messages.warning(request, 'User with email already exist') return redirect('/authapp/signup/') except Exception as identifier: pass myuser = User.objects.create_user(username, email, pass1) myuser.save() messages.success(request, "Your Account has been successfully created, Login") return redirect('/authapp/signin/') return render(request, 'authapp/signup.html') signup.html {% for message in messages %} <div class="alert alert-{{message.tags}} alert-dismissible fade show" role="alert"> <strong> {{message}} </strong> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> {% endfor %} settings.py MESSAGE_TAGS = { messages.ERROR:'alert-info' } -
how to access MsSql Database from Cpanel
i am using python django project hosted in c panel. Database used is MsSql but not Supporting. try to add MsSql databse in CPanel but got error- MsSql is not supported.how to add mssql databasein cpanel with free of cost -
How to get full history executed function inside parrent function in Python / Django
I have function like this def test_func_1(angka): angka = angka + 3 result = test_func_2(angka) return result def test_func_2(angka): angka = angka + 5 return test_func_3(angka) def test_func_3(angka): angka = angka * 2 return angka def wrapper_func(): return test_func_1(3) When I call wrapper_func() I want to have history function that executed like this : wrapper_func() test_func_1(3) test_func_2(angka) test_func_3(angka) is that possible ? I know it's possible if we put trace_back.print_stack() like this Getting a python traceback without an exception But what if I don't have access to change that code ? It's very useful when I run django shell in the production server, and debug intermittent issue. So I can just call that function and I input specific parameter, then I can know what actually that function did -
Django session id cookie not as expected when requesting from swift
When I use Postman to log a user in I get my csrftoken and sessionid cookies in the response as expected. When I make the same exact request but on my iOS app on the simulator, I get the csrftoken cookie from my response just fine as expected. But I do not get the same sessionid cookie. The cookie I'm getting is named "__cf_bm" with a much longer than expected value. The domain of the sessionid cookie on iOS is also now "cloudflare-ipfs.com", whereas on both Postman and iOS the csrftoken domain is just 127.0.0.1. On Postman the sessionid cookie's domain is also just local host. I never did anything with cloudflare. What could be causing this? -
asgi config in Django
I implemented a chat environment with Django chat channel and it works with asgi, messages are exchanged on my computer without any problem, but when I upload my project on host, it does not exchange messages, I am wondering should I config my passenger_wsgi or some configuration from my host? My asgi config: import os import chat.routing from channels.auth import AuthMiddlewareStack from channels.routing import ProtocolTypeRouter, URLRouter from channels.security.websocket import AllowedHostsOriginValidator from django.core.asgi import get_asgi_application from chat.routing import websocket_urlpatterns os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") django_asgi_app = get_asgi_application() application = ProtocolTypeRouter( { "http": django_asgi_app, "websocket": AllowedHostsOriginValidator( AuthMiddlewareStack(URLRouter(websocket_urlpatterns)) ), } ) My wsgi import os from django.core.wsgi import get_wsgi_application from django.core.asgi import get_asgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'zgalaxy.settings') aplication = get_wsgi_application() ` My passenger_wsgi from zgalaxy.asgi import application ` My settings.py ASGI_APPLICATION = 'zgalaxy.asgi.application' ` -
how to make a post request for a model with a foreign key in django-ninja using api
My models looks like this: from django.db import models class PRODUCT(models.Model): name = models.CharField(max_length=50) price = models.FloatField() def __str__(self): return f'{self.name}- {self.price}' class CUSTOMER(models.Model): name = models.CharField(max_length=50) email = models.EmailField(max_length=254) def __str__(self): return f'{self.name}-{self.email}' class ORDER(models.Model): productID = models.ForeignKey(PRODUCT, on_delete=models.CASCADE, null=True,blank=True) customerID = models.ForeignKey(CUSTOMER, on_delete=models.CASCADE,null=True,blank=True) quantity = models.IntegerField() price = models.FloatField() def __str__(self): return f'{CUSTOMER.pk}-{PRODUCT.pk}-{self.quantity}' The schemas I used are: class ORDERin(Schema): productID: int customerID: int quantity: int price: float class ORDERout(Schema): id: int productID: int customerID: int quantity: int price: float This is how I tried to do the post api from ninja import Router from myapp.models import ORDER from myapp.schemas import ORDERin,ORDERout from typing import List order_router = Router() @order_router.post('/post') def post_order(request, data: ORDERin): qs = ORDER.objects.create(**data.dict()) return {List[ORDERout]} When I tried to test this post request, I got this error: "ValueError: Cannot assign "1": "ORDER.productID" must be a "PRODUCT" instance." I don't know what I messed up here, probably my schemas but I don't know how to do it the right way. -
Django: Session data not updating
I'm building an ecommerce app on Django, and I'm trying to add a functioning cart app that can add, update, and delete items in it. However, I can't seem to get the session data to update when the user clicks the relevant button to add an item The template: {% extends "../main.html" %} {% load static %} {% block title %} {{ product.name }} {% endblock %} {% block content %} <div class = "container"> <main class = "pt-5"> <div class = "row g-3"> <div class = "col-md-5 col-lg-5 order-mg-first"> <img class = "img-fluid mx-auto d-block" width = "200px" alt = "Responsive image" src = "{{ product.image.url }}" /> </div> <div class = "col-md-7 col-lg-7 ps-md-3 ps-lg-5"> <h1 class="mb-0 h4">{{ product.title }}</h1> <p><span class="lead">{{ product.author }}</span> (Author)</p> <p>{{ product.description|slice:":355" }}...</p> <div class="border"> <div class="col border-bottom"> <div class="row p-3"> <div class="col-6">Hardback</div> <div class="col-6 text-end"><span class="h4 fw-bold">€{{ product.price }}</span></div> </div> </div> <div class="col"> <div class="row p-3"> <div class="col-6"> <label for="select">Qty</label> <select id="select"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </div> <div class="col-6 text-end"> <button type="button" id = "add_button" value = "{{product.id}}" class="btn btn-secondary btn-sm"> Add to Cart </button> </div> </div> </div> </div> </div> </div> </main> </div> <script> $(document).on('click', '#add-button', function(e){ … -
Django "django-modeladmin-reorder" library does not work for side navigation/nav bar of admin
I have a django project, which contains several models with natural grouping, as well as some off-the-shelf models from install libraries. I am trying to have this natural grouping reflected in the admin hope page, as well as the side navigation (nav bar) of the admin panel. By using django-modeladmin-reorder library, the home page is properly grouped as I want. Though, the nav bar ordering is not working and the models appear in their original order (alphabetically, grouped by the library/file where they are fetched from). I have tried several complex (or more complex than just plugging a library) solutions, such as overriding the nav bar/app list html of django and create other templates and creating custom middlewares. -
How to keep django web session active in react-native-webview?
Based on this answer I tried to retain my session in IOS and even though I am passing the cookies back with the request, I am still coming back when I exit and re-open the app, the difference from the above link is I am using django and its sessions export default class App extends Component { constructor(props) { super(props); this.currentUrl = ''; this.myWebView = React.createRef(); this.state = { isReady: false, cookiesString: '', userAgent: '', }; } UNSAFE_componentWillMount() { // CookieManager.clearAll(); this.provideMeSavedCookies() .then(async (savedCookies) => { let cookiesString = this.jsonCookiesToCookieString(savedCookies); const sessionid = await AsyncStorage.getItem('sessionid'); if (sessionid) { cookiesString += `sessionid=${sessionid};`; } DeviceInfo.getUserAgent().then((userAgent) => { this.setState({userAgent: userAgent, cookiesString, isReady: true}); }); }) .catch((e) => { this.setState({isReady: true}); }); } onLoadEnd = () => { let successUrl = `${domain}`; if (this.currentUrl === successUrl) { CookieManager.getAll().then((res) => { console.log('RES'); console.log(res) AsyncStorage.setItem('savedCookies', JSON.stringify(res)); if (res.sessionid) { AsyncStorage.setItem('sessionid', res.sessionid.value); } }); } }; jsonCookiesToCookieString = (json) => { let cookiesString = ''; for (let [key, value] of Object.entries(json)) { cookiesString += `${key}=${value.value}; `; } return cookiesString; }; onNavigationStateChange = (navState) => { this.currentUrl = navState.url; }; provideMeSavedCookies = async () => { try { let value = await AsyncStorage.getItem('savedCookies'); if (value !== null) { … -
What is wrong with the Procfile I use in order to deploy my Django website to Heroku
I've been trying for days now to deploy my django website to heroku. I fixed problems with my requirement.txt file, but the Procfile stills gives me problems. The procfile contains this simple line : web: gunicorn myproject.wsgi Which corresponds to the name of my django project, as it is in my wsgi.py file : import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') application = get_wsgi_application() The structure of my project is basic : /django_learn /myproject /landing_page /myproject /staticfiles /db.sqlite3 /manage.py /venv310 Procfile requirements.txt runtime.txt The requirements.txt was generated with a pip freeze command, no problems when I push to heroku with git push heroku master. When I use herok open I end up with an application error message. The logs show this : 2023-08-11T20:58:01.720670+00:00 heroku[web.1]: State changed from crashed to starting 2023-08-11T20:58:04.042143+00:00 heroku[web.1]: Starting process with command `gunicorn myproject.wsgi` 2023-08-11T20:58:04.849914+00:00 app[web.1]: [2023-08-11 20:58:04 +0000] [2] [INFO] Starting gunicorn 21.2.0 2023-08-11T20:58:04.850170+00:00 app[web.1]: [2023-08-11 20:58:04 +0000] [2] [INFO] Listening at: http://0.0.0.0:11115 (2) 2023-08-11T20:58:04.850205+00:00 app[web.1]: [2023-08-11 20:58:04 +0000] [2] [INFO] Using worker: sync 2023-08-11T20:58:04.852505+00:00 app[web.1]: [2023-08-11 20:58:04 +0000] [7] [INFO] Booting worker with pid: 7 2023-08-11T20:58:04.854461+00:00 app[web.1]: [2023-08-11 20:58:04 +0000] [7] [ERROR] Exception in worker process 2023-08-11T20:58:04.854461+00:00 app[web.1]: Traceback (most recent call last): … -
Django gettext not working properly with django rest
I'm having some weird bug with gettext while using a ModelSerializer, I cannot get the translated charfield choice for all of the choices, some choices work but others don't I even tried to run another makemessages command but the same inconsistent result. this is the problematic field status= models.CharField( max_length=50, default="pending", choices=[ ('pending', _('Pending')), ('initiated', _('Initiated')), ('completed', _('Completed')) ] ) -
Get ElasticSearch suggestion based on filtered data in Django
I am using django-elasticsearch-dsl for integrating elastic search. I have an API that returns name suggestions using elastic search suggest feature. It's working as expected but the issue is I can't apply a specific filter. For example, I want to get suggestions for the published products only. #Document class ProductDocument(Document): status = fields.IntegerField() meta = fields.ObjectField( properties={ "is_published": fields.BooleanField(), "full_name": fields.TextField( analyzer=html_strip, fields={ "raw": fields.KeywordField(), "suggest": fields.Completion(), } ), }, ) search = ProductDocument.search() search = search.filter("match", meta__is_published=True) completion = { 'field': "meta.full_name.suggest", 'size': 10, 'fuzzy': {'fuzziness': "auto:4,8"}, } suggest = search.suggest("auto_complete","abc", completion=completion) But it return products with is_published=False. Is there any way to achieve this? -
Django And Windows 2016 IIS Server
I have at work a local Windows 2016 IIS Server. How can I configure it to recognize a live instance of my Django project? -
Django translation.activate not working in middleware
I'm attempting to implement an auto language switcher in Django based on the client's IP address. For testing purposes, I've created a middleware to set the language to French ('fr'). class SetFrenchLanguageMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): user_language = 'fr' translation.activate(user_language) request.LANGUAGE_CODE = translation.get_language() response = self.get_response(request) response.set_cookie('django_language', user_language) print("language set to ", user_language) return response When I access a page, I see "language set to fr" printed in the console, indicating that the middleware is executed. However: The content is still displayed in English, the default language. The URL prefix doesn't change to "/fr/". Could someone help me understand why this isn't working as expected and guide me on how to resolve the issue? -
I need to create a button in html
Good time of day. I have a Field and a button that changes a record in the Database when clicked.I want to not have this field, and when I press the button, I go to the already filled field, and I can customize it, and then save it by pressing the button. Here is my code, I hope it will help in some way.I would also be grateful for help in improving the code, I'm a beginner. today.html <title>Todoist</title> <h1>Сегодня</h1> <h2>Задачи</h2> <form method="POST" action="{% url 'todoist:add' %}" >{% csrf_token %} <input type="text" name='tasks' pattern=".{2,}" required title='Минимум два символа!!!'> <button type="submit" class="save btn btn-default">Добавить задачу</button> </form> {% for todo in todos%} <div> <p> {{todo.tasks}}</p> <a href={% url 'todoist:delete' today_id=todo.id%}>Удалить</a> <form action="{% url 'todoist:update' today_id=todo.id%}" method="post"> {% csrf_token %} <input type="text" name='tasks'> <button type="submit" class="save btn btn-default">Изменить</button> </form> </div> {% endfor %} views.py from django.shortcuts import render,redirect from .models import Today from django.views.decorators.http import require_http_methods def index(request): todos = Today.objects.all() return render(request, 'today.html', {'todos':todos}) @require_http_methods(['POST']) def add(request): tasks = request.POST["tasks"] task = Today(tasks=tasks) task.save() return redirect('todoist:index') def delete(request, today_id): todo = Today.objects.get(id=today_id) todo.delete() return redirect('todoist:index') def update(request, today_id): todo = Today.objects.get(id=today_id) todo.tasks = request.POST.get('tasks') todo.save() return redirect('todoist:index') -
Django: create dynamic attributes related to objects
In my models I have a few "masterdata" models. These contain the most relevant / standardized values. For different purposes I need different "attributes" / "variables" related to these master data. I dont want to create a variable for each possibility in the master model. Say e.g. I have the model Material. It will contains some basic variables. My rationale is to have a seperate model, Material_Attributes. This would contain a foreign key to Material, and allow for example to store attribute "packing" with value "cartons". At the model I'm a bit in doubt whether these attributes and options should be stored in a third model. But in this case, it would relate to Material only. I might also want to store an attribute to objects from model Customers. I could build the same logic, but it would be rather static (need to do for each model), or perhaps I can do a work around with GenericForeignKeys to allow even the model to be dynamic. Anybody encountered something similar in the past, and how to go about? I'm a bit struggling how to go about. What would be a logic step to go about? -
Django - Alert user if exiting before submitting form
I have a page of my application that has a form. How can I alert users if they attempt to exit the program without submitting the form? Ideally, I would like to do so without using JavaScript, if possible. -
Exporting Data from Django Template to Excel
I wish to do just that: Export my context data on a template to Excel, using XlsxWriter or anything of the kind. The user would click on a button or anchor on the template. If I use a url path to call a view, some sort of HttpResponse is expected. I have no idea if or how this can be done through some sort of custom tag, either (I saw this suggested elsewhere). Any ideas? Or better yet, does anyone have a project on GitHub that has anything like this? Thanks in advance. I tried calling a url path, that would in turn call a view. But the view needs to return an HttpResponse at least. So this leaves me with 2 uncertain possibilities: Can a url path simply call a module, completely independent of views.py? If I do call a view, could it return something like a response to the currently-rendered template? (like "file created!", for instance. I don't want to leave the template. -
im getting error while gitlab ci pipeline runs
i am using python:3.10.12-alpine as image in my gitlab ci/cd and this is my gitlab-ci file: default: image: python:3.10.12-alpine before_script: - apk update - apk add make automake gcc g++ subversion - pip install --upgrade pip - python -m pip install --upgrade pip - python -m pip install -r requirements.txt migrations: stage: build script: - python manage.py makemigrations - python3 manage.py makemigrations myapp - python manage.py migrate and this is the error that i get when pipeline runs: Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'error' error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [24 lines of output] /bin/sh: pkg-config: not found /bin/sh: pkg-config: not found Trying pkg-config --exists mysqlclient Command 'pkg-config --exists mysqlclient' returned non-zero exit status 127. Trying pkg-config --exists mariadb Command 'pkg-config --exists mariadb' returned non-zero exit status 127. Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module> main() File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel return hook(config_settings) File "/tmp/pip-build-env-nx4qgfyo/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=['wheel']) File "/tmp/pip-build-env-nx4qgfyo/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line … -
python not rendering context in data view
I have created a custom report in python (using logic I have used in another app that I know works). However, in this particular app it doesn't appear to be rendering the context that I referring to with the render in my view. I can see that it is printing out the query in the python parser but the issue is that it is not rendering in the template. Models.py class NegativeBehaviour(models.Model): behaviour = models.CharField(max_length=250, blank=True, unique=True, null=True, choices=NegativeBehaviourType) behaviourdesc = models.TextField(max_length=2500) subjects = models.CharField(max_length=250, choices=Subjects, default=None) module = models.CharField(max_length=250, choices=Modules, default=None) students = models.ForeignKey(CustomUser, related_name = "Negative_Behaviour_Students", on_delete = models.CASCADE) staff = models.ForeignKey(CustomUser, related_name = "Negative_Behaviour_Teachers", on_delete = models.CASCADE) C1 = BehaviourManagerC1() C2 = BehaviourManagerC2() C3 = BehaviourManagerC3() C4 = BehaviourManagerC4() C5 = BehaviourManagerC5() class Meta: verbose_name = "Behaviour", verbose_name_plural = "Behaviours" def __str__(self): return self.behaviour return str(self.user.id) class PositiveBehaviour(models.Model): behaviour = models.CharField(max_length=250, blank=True, unique=True, null=True, choices=PositiveBehaviourType) behaviourdesc = models.TextField(max_length=2500) subjects = models.CharField(max_length=250, choices=Subjects, default=None) module = models.CharField(max_length=250, choices=Modules, default=None) students = models.ForeignKey(CustomUser, related_name = "Positive_Behaviour_Students", on_delete = models.CASCADE) staff = models.ForeignKey(CustomUser, related_name = "Positive_Behaviour_Teachers", on_delete = models.CASCADE) A1 = BehaviourManagerA1() A2 = BehaviourManagerA2() A3 = BehaviourManagerA3() class Meta: verbose_name = "Behaviour", verbose_name_plural = "Behaviours" def __str__(self): return self.behaviour … -
Django how to design the editting page of a plugin made by CMSPlugin and CMSPluginBase?
I am implementing a plugin to show the information of a publication, in the normal editting page, there's three button in the right down corner 'Cancel' 'Delete' 'Save', the plugin is created using CMSPlugin and CMSPluginBase, is it possible for me to add new buttons with them? I tried adding a button, but I can only add attributes to the class defined in the cms_plugins.py. The button can only be added in the form, not on the window. -
File upload - File does not exist when file exceeds that FILE_UPLOAD_MAX_MEMORY_SIZE
Stumbled upon this error when upgrading from Django 4.1. to 4.2.4. ... and it's a weird one. The error occurs when I upload a file that is larger than FILE_UPLOAD_MAX_MEMORY_SIZE (set to 5MB). I have two development environments set up. One is local dev server (just normal py manage.py runserver), the other one is running under Docker(Windows) + Alpine linux + Apache2 + mod_wsgi which is also still a 'development' environment. This error occurs only under Docker environment and only when file exceeds max memory size. Under all other circumstances the upload works - even when file exceeds memory limit on local dev server. The error: Saving new order file to: customer_name/_web_portal/PendingOrders/7935/zip_03.zip Internal Server Error: /b2b_api/orders/ Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view return view_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/rest_framework/viewsets.py", line 125, in view return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/code/api/views.py", line 352, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/rest_framework/views.py", line 509, in dispatch response = self.handle_exception(exc) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/rest_framework/views.py", line 469, in handle_exception self.raise_uncaught_exception(exc) File "/usr/local/lib/python3.11/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception raise exc … -
Django cant find the current path when it mentions the available paths on the error too
Request Method: GET Request URL: http://127.0.0.1:8000/playground/hello Using the URLconf defined in storefront.urls, Django tried these URL patterns, in this order: 1- admin/ 2- playground/playground/hello The current path, playground/hello, didn’t match any of these. Here it is showing the available paths and when i put the available path playground/hello it says it cant be found My playground/urls.py from django.urls import path from . import views app_name = "playground" urlpatterns = [ path('playground/hello', views.say_Hello) ] My playground/views.py from django.shortcuts import render from django.http import HttpResponse # Create your views here. def say_Hello (request): return HttpResponse ('Hello World') My Django project/urls.py from django.contrib import admin from django.urls import path, include print('came in main urls') urlpatterns = [ path('admin/', admin.site.urls), path('playground/', include ('playground.urls')) ] -
Form is not processed
I'm writing my store in Django. When it comes to filling out the order form, even if it is empty, the page about `successful payment` is still displayed. Water code: views.py from django.shortcuts import get_object_or_404, redirect, render from django.contrib import messages from django.contrib.auth.decorators import login_required from .models import * from .forms import ShippingAddressForm # Create your views here. def store(request): products = Product.objects.all() return render(request, 'store.html', {'products': products}) @login_required def cart(request): items = CartItem.objects.filter(user=request.user) total_quantity = sum([item.quantity for item in items]) total_price = sum([item.product.price * item.quantity for item in items]) return render(request, 'cart.html', {'items': items, 'total_quantity': total_quantity, 'total_price': total_price}) @login_required def add_to_cart(request, product_id): product = Product.objects.get(id=product_id) item, created = CartItem.objects.get_or_create(product=product, user=request.user) if not created: item.quantity += 1 item.save() return redirect('store') @login_required def remove_from_cart(request, product_id): item = get_object_or_404(CartItem, pk=product_id) if item.quantity > 1: item.quantity -= 1 item.save() else: item.delete() return redirect('cart') @login_required def checkout(request): items = CartItem.objects.all() total_price = sum([item.product.price * item.quantity for item in items]) if request.method == 'POST': form = ShippingAddressForm(request.POST) if form.is_valid(): # Create a new Order instance and associate with the user order = Order.objects.create(customer=request.user) # Associate each cart item with the order for item in items: item.order = order item.save() # Clear the cart items.delete() # … -
django-axes not saving ip-address
I have a django app running behind gunicorn+nginx. These packages are installed: django-axes 6.0.5 django-ipware 5.0.0 This is my config: AXES_FAILURE_LIMIT = 5 AXES_COOLOFF_TIME = 1 AXES_IPWARE_PROXY_COUNT = 1 AXES_IPWARE_META_PRECEDENCE_ORDER = ('HTTP_X_FORWARDED_FOR',) AXES_LOCKOUT_PARAMETERS = [["username", "ip_address"]] request.META.get('HTTP_X_FORWARDED_FOR') returns my ip-address. If I test it on dev server it saves 127.0.0.1 but in production ip address field stays empty. What am I doing wrong?