Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Using the URLconf defined in ''.urls, Django tried these URL patterns, in this order:
First I know this is a common question. But I can't figure it out. So I have a application with name main. and I have in the main forlder a templates folder and a main folder. and in this folder I have all the html templates, like home.html. So the html page home.html looks like: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> TEST PAGE </body> </html> and my views.py: def home(request): return render(request, "main/home.html") and urls.py in main: path('', views.home), urls.py: path('main/', include('main.urls')), and settings.py: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'main', ] STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] STATIC_ROOT = 'C:\\static_files_cdbn' But if I go to: http://127.0.0.1:8000/main/home or http://127.0.0.1:8000/home I just get this error: Using the URLconf defined in schoolfruitnvwa.urls, Django tried these URL patterns, in this order: admin/ main/ [name='index'] main/ The current path, main/home, didn’t match any of these. Question. How to tackle this? -
How to put image in a pdf generated by reportlab which is stored in DO spaces - Django
I want to put my logo in pdf that is stored in digital ocean spaces. The code that I wrote was pdf.drawImage('https://dummycompany.sgp1.cdn.digitaloceanspaces.com/static/images/logo_name_header.svg', -0.10*cm,10*cm) this throws the below error fileName=<_io.BytesIO object at 0x000001D1CE603A90> identity=[ImageReader@0x1d1ce5e6f70] cannot identify image file <_io.BytesIO object at 0x000001D1CE603A90> The file is accessible if entered in the address bar. I do not understand what this error is, please suggest me what to do? -
Django and database MD5-based query
I have a model that represents a program written by the user in some programming language and the results of executing it against some test cases. The model looks like this: class UserProgram(models.Model): code = models.TextField(blank=True) execution_results = models.JSONField(blank=True, null=True) The user first types some code, which is autosaved by the frontend into the code field, then at some point they click a "Run" button, which causes a task to be scheduled which runs the current code inside of a sandbox, which returns a JSON object which details the results of the execution (the fields of this dict aren't relevant to my question), which is ultimately saved into the execution_results field. I want to be able to check whether the execution results object refers to the latest version of the code, i.e. the current value of the code field. This is used to check if, so to speak, the saved results are up to date or whether the user has made modifications to the code since the last time it was run which haven't been run yet. One solution could be to just add a field named code inside of execution_results which just contains the code the results refer to, … -
how to solve the secret key error in django project?
I was trying to run a django project from github and i keep getting this error i dont know how to solve it settings.py is split in to common.py and production.py This is common.py file from pathlib import Path import environ import os BASE_DIR = environ.Path(__file__) - 3 env = environ.Env( DEBUG=(bool, False) ) environ.Env.read_env() SECRET_KEY = env.str('SECRET_KEY') # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'whitenoise.runserver_nostatic', 'django.contrib.staticfiles', 'storages', 'accounts', 'issues' ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'tracker.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'tracker.wsgi.application' # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'EST' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/ STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATIC_URL = '/static/' STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) FIXTURE_DIRS = [ os.path.join(BASE_DIR, 'fixtures'), ] LOGIN_REDIRECT_URL = 'issues:my-issues' LOGOUT_REDIRECT_URL = 'login' below is production.py file … -
Django: How do i remove currently:""image_url" in django image edit form?
When i am trying to edit an image field, you can see the current image path and the upload field. What I want to do is to be able to replace the shown path(the "Currently: /image_url_path.jpg" with the actual image or even remove it totally. How can i achieve this? Template <label class="btn btn-icon btn-circle btn-active-color-primary w-25px h-25px bg-body shadow" data-kt-image-input-action="change" data-bs-toggle="tooltip" title="Change avatar"> <i class="bi bi-pencil-fill fs-7"></i> {{p_form.image}} <input type="file" name="avatar" accept=".png, .jpg, .jpeg" /> <input type="hidden" name="avatar_remove" /> </label> Output -
Improving Django Performance ideas
I have an application with such architecture: BACKEND: Python + Django SERVER: gunicorn + uvicorn + openshift ASYNC: Celery + Redis DB: Oracle STORAGE: S3 Celery, Redis and API are within the same namespace in openshift. I have Django-Toolbar installed for monitoring performance. I have observed that I have veeery long response time for my application: I have already optimized django queries, but I haven't noticed signifant improvement in performance. I know that there is a lot of variables and unknowns, but do you have any ideas where to look for possible improvements? Or maybe how to investigate it better? -
Can you parameterize a template tag library on template directory?
Let's say I'm writing a form template tag library for Django, but want to be able to render both Bootstrap and UIKit forms. The Python code will be identical, except for the template reference. Simplified @register.inclusion_tag('myforms/bootstrap/formrow.html') def form_row(fieldname, labelpos, labelsize, widgetsize): return {...} vs. @register.inclusion_tag('myforms/uikit/formrow.html') def form_row(fieldname, labelpos, labelsize, widgetsize): return {...} I would like to prevent the duplication of the python code, but the @register.inclusion_tag(..) function runs very early in the Django lifecycle, so I'm not sure if it is possible, or how to do it..? -
Getting the date from the form field before calling the template in UpdateView
to update the data in the table, I use the class o inherited from Updateview, the fields are automatically filled from the database, but can I somehow in my class get the data from the user_guid field? Here is my form and class code: class CampaignEditor(UpdateView): model = Campaigns template_name = 'mailsinfo/add_campaign.html' form_class = CampaignsForm def get_context_data(self): context = super().get_context_data() data = list(Emails.objects.values()) # you may want to further filter for update purposes data = MailsTableWithoutPass(data) context['data'] = data return context class CampaignsForm(ModelForm): class Meta: model = Campaigns fields = ['name', 'subject', 'body', 'user_guid'] widgets = { 'name': TextInput(attrs={ 'class': 'form-control', 'placeholder': 'Name' }), 'subject': TextInput(attrs={ 'class': 'form-control', 'placeholder': 'Subject' }), 'body': Textarea(attrs={ 'class': 'form-control', 'placeholder': 'Body' }), 'user_guid': TextInput(attrs={ 'class': 'form-control', 'placeholder': 'User GuID' }), } -
Docker cache file permission
I use py-staticmaps repository for generate static map image, In normally I run this repo via python .main.py, it is working but I use the repo in Django and docker, I have a problem with cache files,. following error. What can I do? I build it locally al of them working normally but in server I run via docker-compose that is to be problem with cache -
How to show only one object in django admin list view?
Problem I wish to show only the last row of a QuerySet based on the ModelAdmin's ordering criteria. I have tried a couple of methods, but none has worked for me. Model: class DefaultConfig(models.Model): created_at = models.DateTimeField() ... Attempt 1: I tried overriding the ModelAdmin's get_queryset method and slicing super's result, but I came up with some issues. I.E: class DefaultConfigAdmin(models.ModelAdmin): model = Config ordering = ('-created_at',) def get_queryset(self, request): qs = super().get_queryset(request) return qs[<slice>] I tried the following values for [<slice>]s: [-1:]: raised an Exception because negative slicing is not supported [:1]: raised AssertionError: Cannot reorder a query once a slice has been taken. Attempt 2: I tried obtaining the max value for created_at and then filtering for records with that value. I.E: class DefaultConfigAdmin(models.ModelAdmin): model = Config def get_queryset(self, request): qs = super().get_queryset(request) return qs.annotate(max_created_at=Max('created_at')).filter(created_at=F('max_created_at')) But silly me, that works at row level, so it will only return aggregates over the row itself. Further attempts (TBD): Perhaps the answer lies in SubQuerys or Windowing and ranking. Is there a more straight forward way to achieve this though? -
how Querying Dijango date save on JSONField
i save multi date in json filed example : row 1 : [ "2022-10-26", "2022-11-10" , "2022-11-16", , "2022-11-17"] row 2 : [ "2022-09-26", "2022-09-10" , "2022-09-16"] row 3 : [ "2022-12-16" ] **how i can filter date bigger than 2022-10-01 ? ** in the example i must get row 1 & 3 database is MYSQl Django Ver 4.1 example : row 1 : [ "2022-10-26", "2022-11-10" , "2022-11-16", , "2022-11-17"] row 2 : [ "2022-09-26", "2022-09-10" , "2022-09-16"] row 3 : [ "2022-12-16" ] in the example i must get row 1 & 3 -
Django stripe is returning "No such token: 'tok_1M2CbwG5K6HWS5kNipsQbCKh'" as error message
Anytime i tried to make a test payment on stripe, it returns the error below, sk_test_hBNQ83MDWulMeAawYbGftrcC00pDMpmoAB tok_1M2CbwG5K6HWS5kNipsQbCKh 86.0 25 Request req_eboPGGTsmc4D3a: No such token: 'tok_1M2CbwG5K6HWS5kNipsQbCKh' i tried with the api keys from stripe but still it wont work. -
django clone project migrate error occured
"django.db.utils.OperationalError" occurred while setting using django cookiecutter. config\settings\base.py DATABASES = { "default": env.db( "DATABASE_URL", default="postgres://postgres:root@localhost:5432/instagram", ), } C:\dev\clone\instagram>py manage.py migrate Traceback (most recent call last): File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\backends\base\base.py", line 244, in ensure_connection self.connect() File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\backends\base\base.py", line 225, in connect self.connection = self.get_new_connection(conn_params) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\asyncio.py", line 26, in inner return func(*args, **kwargs) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\backends\postgresql\base.py", line 203, in get_new_connection connection = Database.connect(**conn_params) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\psycopg2\__init__.py", line 122, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\dev\clone\instagram\manage.py", line 31, in <module> execute_from_command_line(sys.argv) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line utility.execute() File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\__init__.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", line 414, in run_from_argv self.execute(*args, **cmd_options) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", line 460, in execute output = self.handle(*args, **options) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", line 98, in wrapped res = handle_func(*args, **kwargs) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\commands\migrate.py", line 91, in handle self.check(databases=[database]) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", line 487, in check all_issues = checks.run_checks( File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\checks\registry.py", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\checks\model_checks.py", line 36, in check_all_models errors.extend(model.check(**kwargs)) File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\base.py", line 1461, in check *cls._check_indexes(databases), File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\base.py", line 1864, in _check_indexes connection.features.supports_covering_indexes File "C:\Users\krsai\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\functional.py", line 49, in __get__ res = … -
Nginx unable to access css files in static folder for django admin
I have django running on AWS. Nginx is used as proxy with gunicorn as web server. I followed the [digitaocean][1] tutorial to configure. The problem is that django admin interface doesnt show any ui as no css files are loaded. nginx error log show this: [error] 46553#46553: *7 open() "/home/ubuntu/projectdir/static/admin/css/base.css" failed (13: Permission denied), client: 190.176.82.41, server: 142.22.84.99, request: "GET /static/admin/css/base.css HTTP/1.1", host: "142.22.84.99", referrer: "http://142.22.84.99/admin/" i changed the ownership of static folder to group www-data but still the same issue. ubuntu version is 22.04, django is 4.1.3 and python is 3.10.6 [1]: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-22-04 -
Django queryset.update() seems to act lazy
I have a Django model with a field named 'order': class Foo(models.Model): user = models.ForeignKey(...) order = models.PositiveIntegerField(null=True) class Meta: unique_together = [ ['user', 'order'], ] I want to implement an update method for my serializer to be able to reorder an object. Let's consider our object's current order is 5 and we want to change it to 1. So the scenario is sth like this: 1- make obj's current order null 2- increament order of objects that have an order between our obj's current_order and new_order 3- change obj's order to new_order My firs code was this: def update(self, instance, validated_data): user = self.context['request'].user current_order = instance.order new_order = validated_data['order'] instance.reorder(None) if new_order < current_order: qs = PIN.objects.exclude(order__isnull=True).filter( user_id=user.id, order__gte=new_order, order__lt=current_order ).update(order=F('order')+1) else: qs = PIN.objects.exclude(order__isnull=True).filter( user_id=user.id, order__gt=current_order, order__lte=new_order ).update(order=F('order')-1) But the problem is the order of updating objects in database and I get unique constraint error: ('user', 'order') = ('x', '2') already exist I did read the [django documentations][1] for queryset.update method, so, order_by method is not the result. I decided to change my code to this: user = self.context['request'].user current_order = instance.order new_order = validated_data['order'] instance.reorder(None) if new_order < current_order: qs = Foo.objects.exclude(order__isnull=True).filter( user_id=user.id, order__gte=new_order, order__lt=current_order ) … -
Python can not read characters
when i sent request in api import requests url = 'webiste' headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'} response= requests.get(url.strip(), headers=headers, timeout=10) response.encoding = response.apparent_encoding print(response.text) output is 0e1\u10e2\u10d4\u10db\u10d0 BOSE,\u10d3\u10d0\u10ec\u10e7\u10d4\u10d1\u10d0-\u10d2\u10d0\u10e9\u10d4\u10e0\u10d4\u10d1\u10d8\u10e1 \u10e1\u10d8\u10e1\u10e2\u10d4\u10db\u10d0,\u10d4\u10da\u10d4\u10e5\u10e2\u10e0\u10dd\u10dc\u10e3\u10da\u10d8 \u10d3\u10d8\u10e4\u10d4\u10e0\u10d4\u10dc\u10ea\u10d8\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d0\u10d9\u10d4\u10e2\u10d8,\u10eb\u10e0\u10d0\u10d5\u10d8\u10e1 \u10e1\u10d0\u10db\u10e3\u10ee\u10e0\u10e3\u10ed\u10d4 \u10d9\u10dd\u10dc\u10e2\u10e0\u10dd\u10da\u10d8\u10e1 \u10e1\u10d8\u10e1\u10e2\u10d4\u10db\u10d0,\u10ec\u10d4\u10d5\u10d8\u10e1 \u10d9\u10dd\u10dc\u10e2\u10e0\u10dd\u10da\u10d8\u10e1 \u10e1\u10d8\u10e1\u10e2\u10d4\u10db\u10d0,\u10e1\u10e2\u10d0\u10d1\u10d8\u10da\u10e3\u10e0\u10dd\u10d1\u10d8\u10e1 \u10e1\u10d8\u10e1\u10e2\u10d4\u10db\u10d0,\u10d3\u10d0\u10d1\u10da\u10dd\u10d9\u10d5\u10d8\u10e1 \u10e1\u10d0\u10ec\u10d8\u10dc\u10d0\u10d0\u10e6\u10db\u10d3\u10d4\u10d2\u10dd \u10d3\u10d0\u10db\u10e3\u10ee\u10e0\u10e3\u10ed\u10d4\u10d how to encode in utf-8 ? -
JWT token expire successfully but still able to access Django API's
I'm using JWT token auth in django. I set access-token timing to '1 minute' after 1-min the access & refresh token get expire and but when i try to access API url it gives access and show data. i check with the verifyToken same token shows invalid. and using same token for api call it shows success=True and print 'hello1' Can anyone tell me whats wrong with JWT Check below code for referance. JWT Docs for referance. https://django-rest-framework-simplejwt.readthedocs.io/en/latest/ Code: Setting.py SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=1), 'REFRESH_TOKEN_LIFETIME': timedelta(days=1), 'ROTATE_REFRESH_TOKENS': False, 'BLACKLIST_AFTER_ROTATION': True, 'UPDATE_LAST_LOGIN': False, 'ALGORITHM': 'HS256', 'SIGNING_KEY': SECRET_KEY, 'VERIFYING_KEY': None, 'AUDIENCE': None, 'ISSUER': None, 'AUTH_HEADER_TYPES': ('Bearer', ), 'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION', 'USER_ID_FIELD': 'id', 'USER_ID_CLAIM': 'user_id', 'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',), 'TOKEN_TYPE_CLAIM': 'token_type', 'JTI_CLAIM': 'jti', 'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp', 'SLIDING_TOKEN_LIFETIME': timedelta(minutes=1), 'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1), } REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ), 'DEFAULT_PAGINATION_CLASS': 'slash.controllers.pagination.PageNumberCustomPagination', 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema', } CRONJOBS = [ ('0 23 * * *', 'slash.cron.delete_expired_blacklisted_token'), ] CORS_ALLOW_METHODS = ( 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS' ) DRF_API_LOGGER_DATABASE = True DRF_LOGGER_QUEUE_MAX_SIZE = 50 DRF_LOGGER_INTERVAL = 10 DRF_API_LOGGER_EXCLUDE_KEYS = ['password', 'token', 'access', 'refresh'] # Sensitive data will be replaced with "***FILTERED***". DRF_API_LOGGER_SLOW_API_ABOVE = 200 URLS.py path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), path('token/verify/', TokenVerifyView.as_view(), name='token_verify'), path('token/blacklist/', TokenBlacklistView.as_view(), name='token_blacklist'), … -
serialize write-only field which is not present in django model using viewset
I am using a django viewset and I want to serialize a field which is not in the model. it is an extra field that would be passed by the user. class Bank(models.Model) name = models.CharField(max_length=255) objects = models.Manager() class BankingDetailsSerializer(serializers.ModelSerializer): id = serializers.IntegerField(read_only=True) name = serializer.CharField() documents = serializers.ListField(write_only=True) class Meta: model = Bank fields = ['id', 'name', 'documents'] I am using a modelViewset for my view. However I noticed that after I serialize, the documents field is missing -
Predict user requests and prepare response
Is it possible to predict user request and prepare response even before a request is been made? Test case: I have an endpoint that connect to another API that takes so long to respond up to 12 sec and that makes my application performance drop significantly while i can't modify that api and i can't stop using it. this api takes 2 user input which are start_date and end_date. i want to find a way to optimise that and i was thinking of pre-preparing the data before even receiving a request for it but i still don't know if it is possible or not. Technology i use VueJs in frontend and python(Django) in the backend. i would appreciate the help considering that matter. i did try to make it into jobs but still the same the processes fire when the user ask for the data and the job take the same time as normal implementation in code -
Can I use regular expressions in Django F() expressions?
I have a model: class MyModel(models.Model): long_name = models.CharField(unique=True, max_length=256) important_A = models.CharField(unique=True, max_length=256) important_B = models.CharField(unique=True, max_length=256) MyModel.long_name contains information, that I need to put in dedicated fields (important_A and important_B). An example of a string in long_name would be S1_arctic_mosaic_tile_029r_016d_300_20221108T062432.png I basically need to match one part of the string in long_name, i.e. everything between the 4. and the 5. underscore ("029r") and put it into important_A, and everything between the 5. and the 6. ("016d") into important_B. Since the database (PostgreSQL on Django 3.2.15) is quite big (~2.000.000 rows), looping (and using things like Python's str.split()) is not an option, as this would take too long. I'm thus looking for a way to use regex in the migration to populate important_A and important_B from long_field. My current migration looks like this: from django.db import migrations, models from django.db.models import F def populate_fields(apps, schema_editor): MyModel = apps.get_model("myapp", "mymodel") MyModel.objects.all().update(important_A= F('long_name=r"S1_.*_(\d{2,3}(r|l)_\d{2,3}(u|d))_.*\.png"') ) class Migration(migrations.Migration): dependencies = [ ('icedata', '0036_something'), ] operations = [ migrations.RunPython(populate_fields), ] When I try to run this migration, I get the following error: django.core.exceptions.FieldError: Cannot resolve keyword 'filename=r"S1_.*_(\d{2,3}(r|l)_\d{2,3}(u|d))_.*\.png"' into field. Choices are: long_name, id When I instead use F('long_name__regex=r"S1_.*_(\d{2,3}(r|l)_\d{2,3}(u|d))_.*\.png"'), I instead get: Cannot resolve keyword … -
I want to get the details after I click on the Add to Cart button but I am getting error saying cart doesn't take an argument
This is views.py file from the cart section where I want to add product, remove product and show product details in the cart. Error is : Cart() takes no arguments. from django.shortcuts import render, redirect, get_object_or_404 from django.views.decorators.http import require_POST from ecommerce.models import Product from .cart import Cart from .forms import CartAddProductForm @require_POST def cart_add(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], override_quantity=cd['override']) return redirect('cart:cart_detail') @require_POST def cart_remove(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) cart.remove(product) return redirect('cart:cart_detail') def cart_detail(request): cart = Cart(request) products = [] for item in cart: item['update_quantity_form'] = CartAddProductForm(initial={ 'quantity': item['quantity'], 'override': True}) return render(request, 'cart/detail.html', {'cart': cart}) -
How to refer to model class (name) from html form to views.py with Django?
I want users to be able to download a Django model which is being displayed in the app. There can be many types of models, therefore I want to generalize my code. Currently I let users download the model in excel by means of the following code in HTML: <form id="downloadfile" method="post" action="{% url 'download_file' filename='Irrelevant.xlsx'%}"> {% csrf_token %} <input type="hidden" value="Plant" name="database" /> <input type="submit" name="downloadfile" class="btn btn-success" value="Download Plant"> </form> My views.py: # Define function to download excel file using template from database.models import Plant def download_file(request, filename=''): if 'downloadfile' in request.POST: db_name = request.POST.get('database') #How to specify Plant database? response = xlsx_generator(Plant, db_name) #db_name is used to name the .xlsx file and is just a string. return response else: #some other things to do for other post requests As you can see, I import the Plant model from database.models, and refer to it manually in the xlsx_generator. What I would like to do is refer to this imported model from the posted form so that I don't have to refer to it manually anymore. e.g. db_model = request.POST.get('database') and then response = xlsx_generator(db_model, db_name) where db_model refers to Plant model. Can this be achieved? And if yes, … -
Get the value of the dict in the first element of the list
class PermsField(models.CharField): def __init__(self, *args, **kwargs): kwargs['max_length'] = 64 kwargs['verbose_name'] =_('permission') super().__init__(*args, **kwargs) def deconstruct(self): name, path, args, kwargs = super().deconstruct() del kwargs["max_length"] del kwargs["verbose_name"] return name, path, args, kwargs class AuzGroup(models.Model): perms = PermsField() class Profile(models.Model): user = models.OneToOneField( to=User, on_delete=models.CASCADE, parent_link=True, related_name='profile', primary_key = True) perms = PermsField() auz_groups = models.ManyToManyField( AuzGroup, through='ProfileToAuzGroupM2M') class ProfileToAuzGroupM2M(models.Model): auz_group = models.ForeignKey('AuzGroup', on_delete=models.CASCADE) profile = models.ForeignKey('Profile', on_delete=models.CASCADE) [{'perms': "['consultant', 'project manager', 'admin', 'viewer admin']"}] I create my custom AuzBackEnd and i want to recreate the function get_group_permissions(self, user_obj, obj=None). This function should return the variable perms in the class AuzGroup. I cant simply return user_obj.profile.auz_group.perms. I find an other way, i use values so when i use it, i do list(user_obj.profile.auz_groups.values('perms')) (i use list() to have the good type). With this solution i get '[{'perms': "['consultant', 'project manager', 'admin', 'viewer admin']"}]' but i only want "['consultant', 'project manager', 'admin', 'viewer admin']" more simply i want the value of the dict in the first element of the list. I dont know how i can do it if you can help me, thx. PS: The better thing i have is list(list(user_obj.profile.auz_groups.values('perms'))[0]['perms'].split(",")) but this give me '{"'admin'", "'project manager'", "'consultant'", "'viewer admin'"}' and i got … -
Error installation custom django app package
I'm trying to install in a Django project my own package but when add the app to INSTALLED_APPS through the next error: ModuleNotFoundError: No module named 'django_dashboards_app' Code pypi Anybody could help me please ? Thanks in advance. -
ModuleNotFoundError: No module named 'xmltodict' - getting this error in python shell
I am getting this error even though I installed the python package. ` from django import forms from xmlform.models import MultiLookupValue, MultiLookup import json import xmltodict with open("C:/Users/Adithyas/Desktop/copy/xmlinvoice/xmlform/Supplier.xml") as xml_file: data_dict = xmltodict.parse(xml_file.read()) json_data = json.dumps(data_dict) y = json.loads(json_data) def importx(): i = [] for i in range(1, 48950): record = y['objects']['record'][i] x = MultiLookupValue.objects.create(value=record) x.save() ` This is my code. I am trying to run this code on python shell but getting this error. This is my code. I am trying to run this code on python shell but getting this error.