Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
"Show more" button for images
I have a feature that allows users to upload multiple images. The issue is it displays all of the images and forces users to scroll all the way to the bottom if tons of images are uploaded. I want to implement a show more button something like this. code: {% if postgallery|length >= 1 %} <a class="imggallery-title">Image Gallery</a> <div class="row"> {% for images in postgallery %} <div class="col-md-3"> <a href="{{ images.images.url }}" data-lightbox="image-1"> <img class="img-thumbnail" src="{{ images.images.url }}" /> </a> </div> {% endfor %} </div> {% endif %} I understand I could setup and if statement to check to see if there are more than a set amount of posts but im not sure how I would handle the displaying of the rest with a button click -
How to implement (Automate) Updating security group in AWS using webpage
We have a website that is hosted on EC2 instance with public IP, Me and my friends only need access to that website (already google auth login is enabled) but we need to whitelist the IP's on the security group. Since we don't have VPN/tunneling setup it's hard to update every time on AWS.. (login and update the security group). So I'm planning to do something like this Create a webpage (Django) that has an option to update the security group. /access/testserver URL will have some kind of table to update them. But not sure how to do o where to start. Like If i click the button with IP how the value (IP) will parse from HTML page to python and update using boto3. Note: Since we're traveling or most of us are having mobile network to connect the website the ISP keep on changing so hard to whielist the IP -
Create locked object
Let's say I have a model class Foo. The structure doesn't matter. I want: foo = Foo.objects.create(...) # Do some stuff foo.bar = "something" foo.save() This is, of course, unsafe, because another project can fetch the newly created Foo instance and modify it at the same time, with the final save overriding the one that happens earlier. Using update_fields can reduce the risk, but it is still there for processes that modify the same field (bar, in my example above). A workaround for that is: foo = Foo.objects.create(...) with transaction.atomic(): foo = Foo.objects.select_for_update().get(pk=foo.pk) # Do some stuff foo.bar = "something" foo.save() All good, except it feels a bit redundant to have to refetch the object that I already have. Is there a way to select_for_update when creating a new object, or to select_for_update the foo itself after it was created, but without refetching it, or is the above the best approach when one needs to create an object and then do some modifications after the fact? -
AnyMail and MailGun configuration on Django
I'm setting AnyMail + MailGun on a Django project, but I'm getting an unauthorized response calling mail_admins: anymail.exceptions.AnymailRequestsAPIError: Sending a message to mail@gmail.com from mailgun@sandboxe6301378bfe741bf99d5684e65852283.mailgun.org Mailgun API response 401 (Unauthorized): 'Forbidden' These are my settings.py configs: EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend" ANYMAIL = { "MAILGUN_API_KEY": os.environ.get("MAILGUN_API_KEY"), "MAILGUN_API_URL": "https://api.mailgun.net/v3", "MAILGUN_SENDER_DOMAIN": "sandboxe6301378bfe741bf99d5684e65852283.mailgun.org"), } SERVER_EMAIL = "mailgun@sandboxe6301378bfe741bf99d5684e65852283.mailgun.org" # SERVER_EMAIL = "mail@gmail.com" # DEFAULT_FROM_EMAIL = "mail@gmail.com" ADMINS = [("Admin", "mail@gmail.com"), ] I'm able to send emails w/ these configs w/ CURL. I must be missing something on Django settings. -
I am trying to sorting data in django the data is coming from different table in different dropdown but It is giving empty page
Basically I am making a search engine for car's selling company in this search engine data is coming from different models when I click the search button then blank page will open no data is showing related to dropdown empty page is opening, how can I get the perfect match I need help to solve this problem I will be very thankful to you home.html <form action="/searchdd" method="GET" id="indexForm" data-cars-url="{% url 'ajax_load_cars' %}"> {% csrf_token %} <div class="col-md-12"> <div class="row"> <div class=" col-md-3"> <label for="" class="white">Make</label> <select id="companyddl" name="companyname" class="searchengine dp-list"> <option disabled selected="true" value="">--Select Make--</option> {% for company in companies %} <option value="{{company.CompanyID}}">{{company.CompanyName}}</option> {% endfor %} </select> </div> <div class=" col-md-3"> <label for="" class="white">Model</label> <select id="carddl" name="carname" class="searchengine dp-list"> <option disabled selected="true" value="">--Select Model--</option> </select> </div> <div class="col-md-3"> <label for="" class="white">From Year</label> <select name="fromdate" id="fromdate" class="dp-list"> <option disabled selected="true" value="">--select Year--</option> {% for manf in manufac %} <option value="{{manf.ManufacturingYMID}}">{{manf.ManufacturingDate}}</option> {% endfor %} </select> </div> <div class="col-md-3"> <label for="" class="white">To Year</label> <select name="todate" id="todate" class="dp-list"> <option disabled selected="true" value="">--select Year--</option> {% for manf in manufac %} <option value="{{manf.ManufacturingYMID}}">{{manf.ManufacturingDate}}</option> {% endfor %} </select> </div> </div> </div> <div class="col-md-12"> <div class="row"> <div class="dropdown my-2 col-md-3 col-sm-12"> <label for="" class="white">Type </label> <select name="typ" … -
How to make unsupported Unicode escape sequence supported in Python?
I'm trying to create an object Listing in my django application but I get the following exception : UntranslatableCharacter: unsupported Unicode escape sequence. How can I solve this issue ? models.py class Listing(models.Model): data = JSONField(null=True, blank=True) dt = models.DateTimeField(null=True) dt_created = models.DateTimeField(auto_now=True) objects = DataFrameManager() # activate custom manager Reproductible example from requests import Request, Session from requests.exceptions import ConnectionError, Timeout, TooManyRedirects import json log.info('Retrieve listing from CMC') url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest' parameters = { 'start': '1', 'limit': '5000', 'convert': 'USD' } headers = { 'Accepts': 'application/json', 'X-CMC_PRO_API_KEY': '5e2d4f14-42a9-4108-868c-6fd0bb8c6186', } session = Session() session.headers.update(headers) try: res = session.get(url, params=parameters) data = json.loads(res.text) if data['status']['error_code'] == 0: dt = timezone.now().replace(minute=0, second=0, microsecond=0) Listing.objects.create(dt=dt, data=data) <--- object creation here log.info('Retrieve listing from CMC complete') else: log.error('Error while retrieving data from CoinMarketCap') log.error("Error: {0}".format(data['status']['error_message'])) except (ConnectionError, Timeout, TooManyRedirects) as e: log.error('Error while retrieving data from CoinMarketCap') log.error("Error: {0}".format(e)) This is the traceback : --------------------------------------------------------------------------- UntranslatableCharacter Traceback (most recent call last) ~/env/lib/python3.6/site-packages/django/db/backends/utils.py in _execute(self, sql, params, *ignored_wrapper_args) 85 else: ---> 86 return self.cursor.execute(sql, params) 87 UntranslatableCharacter: unsupported Unicode escape sequence LINE 1: ...ata_listing" ("data", "dt", "dt_created") VALUES ('{"raw": {... ^ DETAIL: Unicode escape values cannot be used for code point values above 007F when … -
How to filter only nested related django objects?
I have a model representing a room and a module. A module can have multiple rooms. Here is the get request result for my module object - { "module_id": 4, "rooms": [ { "room_id": 2, "title": "4", "desc": "22", "level": "2", "is_deleted": true, }, { "room_id": 3, "title": "3", "desc": "22", "level": "2", "is_deleted": false, } ], "title": "4", "desc": "sdsdsdss", "is_deleted": false, } Now I want the get request of modules to show all the modules and the rooms contained in each module should have is_deleted=False. In other words, I don't want room with room_id=2 to be shown in the get request. Here is my views.py file - class add_module(APIView): def get(self, request, format=None): module = Module.objects.filter(is_deleted=False, rooms__is_deleted=False) module_serializer = ModuleSerializer(module, many=True) return Response(module_serializer.data, status = status.HTTP_200_OK) Here is my serializer file for module - class ModuleSerializer(serializers.ModelSerializer): rooms = RoomSerializer(read_only=True, many=True) class Meta: model = Module fields = "__all__" -
Invoke-WebRequest : A positional parameter cannot be found that accepts argument 'Content-Type: application/json'
I am working on simple Django Project for an inventory system. While invoking a post request to my endpoint I am getting the following error in my terminal. Please help me resolve and figure out the issue. Thanks!! class ShoppingCart(View): def Post(self, request): data = json.loads(request.body.decode("utf-8")) p_name = data.get('product_name') p_price = data.get('product_price') p_quantity = data.get('product_quantity') product_data = { 'product_name': p_name, 'product_price': p_price, 'product_quantity': p_quantity, } cart_item = CartItem.objects.create(**product_data) data = { "message": f"New item added to cart with id: {cart_item.id}" } return JsonResponse(data, status=201) from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('api_app.urls')), ] curl Command for Post Request curl -X POST -H "Content-Type: application/json" http://127.0.0.1:8000/cart/ -d " {\"product_name\":\"name\",\"product_price\":\"41\",\"product_quantity\":\"1\"}" Error -
Detecting import error when runserver on Django
I'm working on a project in Python 3.8.5 and Django 3.2. In the process of build and deployment, I want to send a notification by detecting an ImportError when running by manage.py runserver. For example, slack message or email. In manage.py, from django.core.management import ... execute_from_command_line(sys.argv) I twisted the import syntax of the views.py file and tried to try-except to the execute_from_command_line(), but I couldn't catch exception. The error is only appearing on the runserver console. Perhaps I think we should modify the utility.execute() within this execute_from_command_line() logic, which is a package modification, so I want to avoid this method. In utility.execute(), def execute(self): """ Given the command-line arguments, figure out which subcommand is being run, create a parser appropriate to that command, and run it. """ try: subcommand = self.argv[1] except IndexError: subcommand = 'help' # Display help if no arguments were given. # Preprocess options to extract --settings and --pythonpath. # These options could affect the commands that are available, so they # must be processed early. parser = CommandParser(usage='%(prog)s subcommand [options] [args]', add_help=False, allow_abbrev=False) parser.add_argument('--settings') parser.add_argument('--pythonpath') parser.add_argument('args', nargs='*') # catch-all try: options, args = parser.parse_known_args(self.argv[2:]) handle_default_options(options) except CommandError: pass # Ignore any option errors at this point. … -
No Order matches the given query
I am learning Django from book called Django 3 by example. I am following steps given in the book. But I am getting following error: Page not found (404) No Order matches the given query. Request Method: GET Request URL: http://127.0.0.1:8000/payment/process/ Raised by: payment.views.payment_process Using the URLconf defined in FlixKart.urls, Django tried these URL patterns, in this order: admin/ cart/ orders/ payment/ process/ [name='process'] The current path, payment/process/, matched the last one. views.py of payments app: def payment_process(request): order_id = request.session.get('order_id') order = get_object_or_404(Order, id=order_id) total_cost = order.get_total_cost() if request.method == 'POST': # retrieve nonce nonce = request.POST.get('payment_method_nonce', None) # create and submit transaction result = gateway.transaction.sale({ 'amount': f'{total_cost:.2f}', 'payment_method_nonce': nonce, 'options': { 'submit_for_settlement': True } }) if result.is_success: # mark the order as paid order.paid = True # store the unique transaction id order.braintree_id = result.transaction.id order.save() return redirect('payment:done') else: return redirect('payment:canceled') else: # generate token client_token = gateway.client_token.generate() return render(request, 'payment/process.html', {'order': order,'client_token': client_token}) url patterns from settings.py of Project: urlpatterns = [ path('admin/', admin.site.urls), path('cart/', include('cart.urls', namespace='cart')), path('orders/', include('orders.urls', namespace='orders')), path('payment/', include('payment.urls', namespace='payment')), path('', include('shop.urls', namespace='shop')), ] I have tried some solutions from stackoverflow but none worked for me. Please help me solve this error. Thank you. -
How to read file stored in my computer using django view function
I have developed and deployed a Django app and trying to update the database table using a locally stored CSV file. Everything is working fine on http://127.0.0.1:8000/ or localhost but when I am deploying the app on Cpanel, the view function stops working. Here is my code: def getrate(request): if request.user.is_authenticated: if request.method == "GET" : with open("C:/djangoapp/xyz.csv", "r", encoding='utf-8-sig',newline='') as temp_raw: temp_raw_reader = csv.reader(temp_raw) for line in temp_raw_reader: rt = Rates_Detail.objects.get(product_id = 111) if rt: rt.product_rate = line[2] rt.save() user = request.user pd = Rates_Detail.objects.values() productdetails = list(pd) return JsonResponse({'status':'Save', 'productdetails':productdetails}) else: return HttpResponseRedirect("/") -
Extending JSONField and custom default value handling
I am subclassing JSONField to handle default values a bit differently. Specifically, I pass choice options (from django-choices) and build a dictionary based on this. While it works, I understandably get warnings that my new default isn't callable. How could I fix it? class ChoiceOptionsField(JSONField): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.default is NOT_PROVIDED: self.default = self.get_default() def _get_default(self): default = super()._get_default() if not default and self.choices: default = dict() for option_key, option_value in self.choices: if option_key not in self.exclude: default[option_key] = { 'display': option_value 'show': True } return default I have tried setting self.default = self.get_default but that causes issues when migrating, as self doesn't exist in this context. return lambda: default also doesn't work because it doesn't want anonymous functions. -
Redirect http to https in django
I have a django project working with HTTPS using django sslserver. I want http to be redirected to https. I tried adding SECURE_SSL_REDIRECT = True in settings.py which does not seem to have any effect. Thanks in advance -
How to use CKEDITOR_THUMBNAIL_SIZE = (500, 500) ckeditor django?
Could you please advise how to use this feature CKEDITOR_THUMBNAIL_SIZE = (500, 500) ? I have tried simply to add this to my settings file but it does not work. Here it does not say much about https://github.com/django-ckeditor/django-ckeditor With the pillow backend, you can change the thumbnail size with the CKEDITOR_THUMBNAIL_SIZE setting (formerly THUMBNAIL_SIZE). Default value: (75, 75) Basically, what i am trying to achieve is to make image size uploaded by users say not bigger than 500x500. -
How do add +1 to the PositiveIntegerField model field when adding each new Post?
I have a Posts model. And field Order = models.PositiveIntegerField has been created for arbitrary sorting. Objective: in the model, overriding the save method, do add the index +1 (from the last available index of Posts) to this field when adding each new Post. That is, each post must also have an Order-index, and if there are already 3 posts on the site, then when the fourth is added, its index 4 is added to the field, and so on. Help implement this logic. It seems simple, but I don't know how to approach it. I understand that in the model I need to do this: def save(self): ** logics ** super().save() -
Form values in django formtol
I have a django formtool with 2 steps. In the first step I select from a multiselect some values and I need to take this values for a next elaboration. According some tutorial (http://blog.hayleyanderson.us/2015/07/26/passing-information-between-django-form-wizard-steps/) I take first form values but for the multiselection it takes only the last value as you can see in the pic/print. This is my code. forms.py from django import forms from station.models import Station from django.forms import formset_factory from .models import Vdl from django.contrib.auth.models import User station_all = Station.objects.all().values('station_name', 'id_station') options = () i = 0 for st in station_all: #station_all: station = (st['id_station'], st['station_name']), if i == 0: options = options + station else: options = options + station i = i+1 class VdlSelectStationsForm(forms.Form): vdl_name = forms.CharField(label='nome virtual data logger', max_length=20, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'nome vdl'})) stations = forms.MultipleChoiceField(widget=forms.SelectMultiple, choices=options) class Meta: model = Station fields = ('station_name') class VdlSelectSensorsForm(forms.Form): sensor_list_for_station = forms.ModelMultipleChoiceField(queryset=Vdl.objects.all()) #filter(id_user = id_user)) VdlSelectSensorsFormSet = formset_factory(VdlSelectSensorsForm, extra=1) views.py from django.shortcuts import render from .forms import VdlSelectStationsForm, VdlSelectSensorsForm from formtools.wizard.views import SessionWizardView, CookieWizardView from django.forms import formset_factory from .forms import VdlSelectSensorsFormSet from django.contrib.auth.models import User VdlSelectSensorsFormSet = formset_factory(VdlSelectSensorsForm, formset=VdlSelectSensorsFormSet) class VdlWizard(SessionWizardView): template_name = "vdl.html" form_list = [VdlSelectStationsForm, VdlSelectSensorsForm] def get_curr_user(self, request): current_user … -
local variable 'params' referenced before assignment in django
Here's my view def ATFinfo(Request): # inputdata = Request.GET.get('inputdata') url = 'www.google.com' req = Request.GET print("hi",req) req_list = list(dict(req).values()) print("list",req_list) params_count = len(req_list) print('params_count', params_count) if params_count > 0: for i in range(params_count): params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&' url = url + params print('paramfinal',params) return render(Request, 'hello/ATF_Dashboard.html') In this view i'm getting error local variable 'params' referenced before assignment in line params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&' How to solve that issue? Also i'm not able to understand what is the problem here -
How to export a csv from a search result in Django
I have a search form using django-filters and I want to export out a .csv with the filtered result. Currently it is giving me a full page of data and I am not sure how to join the 2 views together to utilize the filtering. models.py class account(models.Model): Price = models.DecimalField('price', max_length=20, blank=True, null=True, max_digits=10, decimal_places=2) User = models.CharField('user', max_length=120, blank=True, null=True,) Account_Number = models.CharField('account Number', max_length=20, blank=True, null=True,) Date = models.DateField(default=now) views.py def stage(request): slist = account.objects.all() search_list = account.objects.all() search_filter = stageFilter(request.GET, queryset=search_list) return render(request, 'stage.html', {'slist': slist, 'search': search_filter}) def export_csv(request): employees = account.objects.all() response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="file.csv"' writer = csv.writer(response) writer.writerow (['User', 'Account Number', 'Price', 'Date']) for employee in employees: writer.writerow([employee.User,employee.Account_Number,employee.Price, employee.Date]) return response filters.py class stageFilter(django_filters.FilterSet): Date = django_filters.DateFromToRangeFilter(widget=RangeWidget(attrs={'type': 'date'})) class Meta: model = account fields = ['User', 'Account_Number', 'Price', 'Date'] urls.py urlpatterns = [ path('stage/', views.stage, name='stage'), path('export_csv', views.export_csv, name='exportcsv') ] -
Django Rest framework: Relate 2 tables
Participants Model lass Participant(models.Model): id = UUIDField(primary_key=True, default=uuid.uuid4, editable=False) first_name = CharField(max_length=255) last_name = CharField(max_length=255) current_employing_country = CharField(max_length=255) current_payroll_country = CharField(max_length=255) # locations = ManyToManyField(Location) Location Model class Location(models.Model): participant_id = ForeignKey(Participant, on_delete=CASCADE,related_name="locations") start_date = DateField() end_date = DateField() country = CharField(max_length=255) region = CharField(max_length=255) tax_policy = CharField(max_length=255, null=True) Serializers class ParticipantSerializer(serializers.ModelSerializer): class Meta: model = Participant fields = "__all__" class LoactionSerializer(serializers.ModelSerializer): # participant_id = serializers.PrimaryKeyRelatedField(queryset=Participant.objects.all()) class Meta: model = Location tax_policy = serializers.CharField(allow_blank=True, allow_null=True) fields = "__all__" Trying to get all participants with property locations that contain array of all the locations that relate to the participant id like Participant.objects.all().prefetch_related("locations") -
Get instance.id during annotation Django
cannot make it working I need to annotate with function and for that function I need to pass the instance id qs = cls.objects.filter(**filters).values(**values).annotate( **annotations, sheets_sum=counter('sheets'), sheets_color=counter('sheets', color=True), sheets_grayscale=culc_function(color=False, id = ???), Is there any way to do it? To get instance id during annotation -
Is exist on multiple table django?
I have five models, Model1 - Primary Model Model2 - One to One with mode1 Model3 - One to Many with mode1 Model4 - One to One with mode1 Model5 - One to Many with mode1 I need to check if any data exist on each of the table, I can do that by one query each but wanted to know if there is any elegant way of checking if record exist ? Above is for django -
Ckfinder for python/django
I'm having problem with thinking how to add ckfinder plugin into my ckeditor in my django project.I could not enough information on the internet. How can I integrate ckfinder into my ckeditor in django? This question was asked previously https://github.com/ckfinder/ckfinder/issues/378 Or should I use another edtor with django like Tinymce? -
how to send request with csrf token using django mock client
I wrote and API that leverages JWT Authentication. I tested the api using postman and I am able to get the csrf cookie and acces token after the user logs in and then I am able to use these tokens to consume the endpoints of the API. For testing I use pytest-django that creates a mock database. All works when I test user registration, user login and when I consume GET endpoints. For the POST I have to send in the headers (as in Postman) the csrf token and access_token, problem is I don't understand how to send those. For example in a GET test I am able to retrieve the access token like this def test_get_signal(): form_data = { "username": "testuser", "email": "email@email.com", "password": "mytestpassword", } CustomUser.objects.create_user(**form_data) response = APIclient.post("/login/", form_data) assert response.status_code == 200 response_content = json.loads(response.content) token = response_content["access_token"] APIclient.credentials(HTTP_AUTHORIZATION="Bearer " + token) response = APIclient.get( path="/api/v1/signals/", ) assert response.status_code == 200 but I do not know how to send the csrf token in the header for the post request. For this reason (as all works in postman) I implemented an agostic way of testing that requires a live server @pytest.mark.skip_in_ci @pytest.mark.skip(reason="This test needs localhost django server … -
Automatically get all fields from my sql db to django model?
right now I'm doing (manually adding the headlines of my db as fields): class NewTables07(models.Model): TestDate = models.CharField(max_length=200) Division = models.CharField(max_length=200) Library = models.CharField(max_length=200) ID = models.CharField(max_length=200) ################# MONOGRAMS ######################## ... class Meta: db_table = 'stat_cat1' I was wondering if there's a way to automatically get all the headlines of my SQL table to my models without having to enter them manually? -
I get an error while running requests_html render function in django enviroment
I highlighted that it happens in django enviroment,because when I run similar scripts with this function outside of django server it works fine. I'm trying to do something like this: from requests_html import HTMLSession session = HTMLSession() page = session.get('https://python.org/') page.html.render() but when I run this code through django server, I get something like this(actual error is very long, so I cut all irrelevant pieces) There is no current event loop in thread 'Thread-1'. ... File "/Users/mac/Desktop/sogo-sakata/papi/seoparser/schema.py", line 28, in titles result = analize(url) File "/Users/mac/Desktop/sogo-sakata/papi/seoparser/utilities.py", line 91, in analize page.html.render() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests_html.py", line 586, in render self.browser = self.session.browser # Automatically create a event loop and browser File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests_html.py", line 727, in browser self.loop = asyncio.get_event_loop() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/events.py", line 642, in get_event_loop raise RuntimeError('There is no current event loop in thread %r.' RuntimeError: There is no current event loop in thread 'Thread-1'. Stack (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 930, in _bootstrap self._bootstrap_inner() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner self.run() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 683, in process_request_thread self.finish_request(request, client_address) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 747, in __init__ self.handle() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 178, in handle …