Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
how to assign users during a data migration in django?
I know this seems like it should be a no-brainer and should work without fail, but I am getting a crazy error during a migration which is currently running during pytest initialization. The error I am getting is: ValueError: Cannot assign "<User: redshred_default_contact>": "Client.primary_contact" must be a "User" instance. When i stop in the debugger on the offending line, i get the following: -> isinstance(default_user, User) True -> isinstance(default_user, get_user_model()) True My migration is as follows: # Generated by Django 4.2.4 on 2023-09-14 18:13 from django.db import migrations from django.contrib.auth import get_user_model from django.contrib.auth.models import Group, User from django.conf import settings def assign_default_client(apps, schema_editor): Client = apps.get_model("apiserver_v2", "Client") client = Client.objects.get(slug="default-client") get_user_model().objects.update(account__client=client) def create_default_client(apps, schema_editor): (default_user, _) = User.objects.get_or_create(username="default_contact") default_user.save() Client = apps.get_model("apiserver_v2", "Client") # BUG: this is where the bug is occurring client = Client.objects.create( name="Default Client", slug="default-client", primary_contact=default_user, domain="mydomain.com", ) (group, _) = Group.objects.get_or_create(name="default_contact_group") client.new_user_group = group client.save() class Migration(migrations.Migration): dependencies = [ ("apiserver_v2", "0026_account"), ("authtoken", "0003_tokenproxy"), ] operations = [ migrations.RunPython(create_default_client, migrations.RunPython.noop), migrations.RunPython(assign_default_client, migrations.RunPython.noop), ] My Client model is: from django.contrib.auth import get_user_model from django.db import models from shortuuid.django_fields import ShortUUIDField class Client(models.Model): """A Client represents one of our clients. Clients are used for accounting purposes. All … -
Django Issue Filtering by Date Occupied
I have a Unit model and a HistoricalOccupancy model in my project. The HistoricalOccupancy tracks the move in and move outs of my units. I am trying to run a report where given a selected month and year, I can dictate that a Unit was occupied or not, but the logic for how to define it is not working in my head. class HistoricalOccupancy(SafeDeleteModel, TimestampModel, UUID): """ Used to track a running talley of move-ins and move-outs """ id = models.AutoField(primary_key=True) unit = models.ForeignKey('units.Unit', on_delete=models.CASCADE, db_column='unit_id', related_name='historical_occupancy') # update fields on each residents_at_move_in = models.ManyToManyField('residents.Resident', related_name='move_in_historical_occupancy') residents_at_move_out = models.ManyToManyField('residents.Resident', related_name='move_out_historical_occupancy') move_in_date = models.DateField() move_out_date = models.DateField(null=True, blank=True) Given that model, and a date like today datetime.datetime(day=1, month=9, year=2023) how can I find out if the unit was occupied during that time? This doesn't work because the move in date isn't relevant: for unit in units: # find if unit was occupied during month selection for h in unit.historical_occupancy.filter( move_in_date__gte=datetime.datetime(day=1, month=9, year=2023), move_out_date__lte=datetime.datetime(day=1, month=9, year=2023) ): print('yay') Also note that move out date can be none, meaning it is currently occupied at the existing moment in time. -
React Native Django Authentication: TypeError: Cannot read property 'isLoggedIn' of undefined
I'm implementing a Django authentication system in my React Native app. My app.js imports the authentication context, so isLoggedin on app launch is false. The variable isLoggedIn is used in app.js to either render the login screen when isLoggedIn is false, else load AppNavigator which gets the user into the app. I haven't written the Django backend yet, I'm just setting isLoggedIn to true when the login button is pressed without talking to Django (until I get this problem solved). The program execution stops at: line 15 of App.js: const { isLoggedIn } = globalContext; I've double checked all relevant import statements and believe I'm exporting and importing correctly. Also double checked the import paths. I also made sure isLoggedin and setIsLoggedIn are in the globalContext variable in AuthContext.js. It is being passed into the Context.Provider in AuthContext.js and App.js is wrapping the whole app in Provider, so the auth context is available to the whole app. The app should show the login screen on first load. I should be able to enter some text in the 2 text fields and press the login button to get into the app. However, Expo Go displays the error "TypeError: Cannot read property … -
Run Django-Q along with Django's management command runserver
I'm using Django-Q to run some background tasks and schedules. Currently facing two problems here: When stopping the django-q cluster using CTRL+C the cluster is not getting stopped properly. Not sure if this is an OS specific issue. I'm using Windows Even when the django server is stopped, since the django-q cluster is running, the configured schedules are also running. So I'd like for a way to start and stop the django-q cluster along with the django server itself I was looking for a way to start the django-q cluster to start along with the django server by modifying the manage.py file but not sure if it is advisable. and not sure what's the correct way to do it -
Python - Get result of an update query (Mysql) when performing raw SQL
I work on a Django project and need to apply changes in an other remote DB (not Django DB). Those changes are async and launched with Celery. But when performing these queries, I need to know if updates are well done with counting affected rows, otherwise I must take corrective action. Until now, I haven't found any way to do this. I tried with cusr.fetchone() and curs.fetchall() but results are None. When I print(curs.execute()), the result is 0 even if the product is found. This thread says it should be 1 if update is done. Even the official documentation doesn't talk about this. So, for the time, the only workaround I found is performing a first SELECT query and if rowcount < 1, I raise an Exception. Not really nice ... Is there a way to do it better ? Nota : I use django.db.backends.mysql and pymysql -
'QuerySet' object has no attribute 'products'
I want to get all products in table's order. but I see this error. can you help me with that? here my models: from django.db import models from products.models import Product # Create your models here. class Table(models.Model): table_number=models.IntegerField(unique=True) def __str__(self): return f'{self.table_number}' class Order(models.Model): products=models.ManyToManyField(Product,related_name='products_order') table=models.ForeignKey(Table, on_delete=models.CASCADE,related_name='orders') def __str__(self) -\> str: return f'{self.table.table_number} {self.products} and my views: class TableDetailView(View): def get(self,request,id): table=Table.objects.get(id=id) order=Order.objects.filter(table__id=id) products=order.products #here is the problem context={'table':table,'products':products,} return render(request,'orders/table_detail.html',context) I also tried: `products=order.products.all()\` But I got similar error. -
Django can't identify which input field is being pressed
I can't seem to recognize the problem in my django project - I have a simple form with 2 "input" tags and I can't identify in my code which one is being pressed. front end: <form method="POST"> {% csrf_token %} <input type="image" value="accept" class="v" src="{% static 'main/assets/icons/v.png' %}"> <input type="image" value="decline" class="x" src="{% static 'main/assets/icons/x.png' %}"> </form> back end: if response.method == "POST": if response.POST.get("accept"): return render(response, "main/calender-page.html", {}) if response.POST.get("decline"): return render(response, "main/account-page.html", {}) I tried to search for answers in stack overflow and I never managed to find one that works. Thanks for the help! -
Can I have html tags in Django admin panel?
can I have this entry with all these tools such as bold, italic, title, etc: I mean s.th like this photo instead of this: default panel I've found this solution, but I want s.th better enter image description here -
Search function not working in Django / Bootstrap
I am facing problems in search functionality of Django. the function is as follows: def search(request): if request.method == 'GET': query = request.GET.get('query','') allPosts = Post.objects.filter(Q(title__icontains=query) | Q(content__icontains=query)) return render(request, 'dn/search.html', {'allPosts':allPosts, 'query':query}) the search form is as under: <form class ="{% url 'search' %} d-flex" method="get"> <input class="form-control me-2" type="text" name="query" placeholder="Search" aria-label="Search"> <button class=" text-white text-uppercase fw-bold btn btn-outline-primary light border-1 rounded-pill border-white border border-1" type="submit">Search</button> </form> the search page is as under: {%extends 'dn/base.html'%} {% block title %} Search Results | active {% endblock title %} {% block content %} <div class="container"> {% if allposts %} {% for querry in allposts %} <div class="row"> <div class = "col md-12"> <h3>{{querry.title}}</h3> <br> </div> <div class="col-md-12"> <p>{{querry.content}} </p> </div> </div> {% endfor %} {% else %} <p><h3> No Search Results </h3></P> {% endif %} </div> {%endblock%} However, while searching anything in the system is not showing the results. can you please guide me what i am missing to get the results. Thanking you. Regards SSA -
Django session data is lost when using HttpResponseRedirect
I have two simple views: def form_view(request): form = MyModelForm() if request.method == "POST": form = MyModelForm(request.POST) if form.is_valid() form.save() uuid = uuid4() request.session["uuid"] = uuid.hex return HttpResponseRedirect(reverse("thanks")) return render(request, "form.jinja2", {"form": form}) # the url obtained by reverse("thanks") maps to this view def redirect_view(request): if "uuid" in request.session: # this returns false in prodcution return render(request, "thanks.jinja2", {"uuid": request.session["uuid"]} return redirect("/") The code works in development, i.e I can fetch data from request.session, but in production it does not work, and I can't seem to figure out why. I have tried to set request.session.modified = True, set SESSION_COOKIE_SECURE = False in settings and also tried using request.session.set_test_cookie() and request.session.test_cookie_worked() in the two different views, i.e setting the cookie in form_view and testing the cookie in redirect_view, but it returned false. Interestingly, if I do this: def form_view(request): form = MyModelForm() if request.method == "POST": print(request.session.test_cookie_worked()) # this prints True! form = MyModelForm(request.POST) if form.is_valid() form.save() uuid = uuid4() request.session["uuid"] = uuid.hex return HttpResponseRedirect(reverse("thanks")) request.session.set_test_cookie() return render(request, "form.jinja2", {"form": form}) The test_cookie_worked() returns True. I have tried many of the solutions recommended when searching on something similar, but none of these work for me, and I don't know what else … -
Filter table as per the multiple dropdown selection
I have created the table using datatables. So I want to filter table as per the multiple dropdown selection. But I have multiple table with the same data. Actually the columns are too much, so to avoid so scrolling I have added the tables into the multiple tabs. Like: In TAB1 (columns : ID, Origin, Destination) | TAB2 (columns : ID , Driver Type, Product Type) etc.. here is my dropdown html Code: <div class="row"> <div class="col"> <div class="input-group mb-6"> <span style="padding: 4px 10px ;">Route Volume ></span> <input type="number" id="filterByVolumeAddOne" class="form-control" style="max-width: 80px; padding: 1px;margin-right: 1em;" aria-describedby="basic-addon1"> <select class="form-control ml-3" style="width: 15em !important; margin-left: 10px !important;" id="productFilterDropdown" multiple> {% for op in products %} <option value="{{op.product_name}}">{{op.product_name}}</option> {% endfor %} </select> <select class="form-control ml-3" style="width: 20em !important;" id="equipmentFilterDropdown" multiple> {% for op in Equipments %} <option value="{{op.equipment_name}}">{{op.equipment_name}}</option> {% endfor %} </select> <select class="form-control ml-3 mr-3" style="width: 15em !important;" id="driverFilterDropdown" multiple> {% for op in drivers %} <option value="{{op.driver_type}}">{{op.driver_type}}</option> {% endfor %} </select> <div class="input-group-prepend"> <span class="input-group-text" id="filterByVolumeGreater" style="background-color: #2980b9; color: aliceblue; padding: 6px; cursor: pointer;"><i class="fa fa-arrow-right"></i></span> </div> </div> </div> </div> table html code of TAB1: <table class="table dataTable table-striped table-bordered" id="routeData"> <thead class="thead-dark"> <tr> <th style="z-index: 2 !important;"></th> <th style="z-index: … -
Django model validation which uses a ManyToMany field
I have a model like this: class Offer(models.Model): condition_products = models.ManyToManyField( "shop.Product", blank=True, help_text="User needs to own at least one of these products.", ) condition_owned_after = models.DateField( blank=True, null=True, help_text="User needs to own at least one products after this date.", verbose_name="Owned after date", ) It's for a webshop where we can create offers with certain conditions. One of the conditions is that the user needs to already own one or more products, and a second condition is that this products needs to be owned after a certain date. I want to add validation to the model so that condition_owned_after can only be filled in when condition_product_variants is not None. But when I try to access condition_product_variants in the clean method I get a ValueError from Django. class Offer(models.Model): # ... def clean(self): if self.condition_owned_after and not self.condition_products.all(): raise ValidationError( { "condition_owned_after": "Cannot set condition_owned_after without also setting condition_products" } ) def save(self, *args, **kwargs): self.full_clean() return super().save(*args, **kwargs) This results in the following error: ValueError: "<Offer: Offer object (None)>" needs to have a value for field "id" before this many-to-many relationship can be used I understand the error, but I don't understand how to work around it. How can I … -
Django is trying to use PSQL 9.6, while 12.15 is installed, raising a "raise NotSupportedError"
I verified that I actually have: (PostgreSQL) 12.15 (Ubuntu 12.15-1.pgdg22.04+1), when I run the command psql --version. When I run python3 manage.py dbshell, I get this result: psql (12.15 (Ubuntu 12.15-1.pgdg22.04+1), server 9.6.24) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) I tried ps aux | grep postgres and I see a list with only 12/main, and there is no 9.6.24 anywhere as the Error indicated. -
Only display the Value of a ForeignKey and not <model> object(...) in Template
I have a Django Modal with ForeignKeys. class clientvul(models.Model): client= models.ForeignKey(client, on_delete=models.CASCADE) VID=models.ForeignKey(vul, on_delete=models.CASCADE) Path=models.CharField(max_length=1000) Product=models.CharField(max_length=1000) isActive=models.BooleanField(default=True) class Meta: constraints = [ models.UniqueConstraint( fields=['client', 'VID'], name='unique_migration_host_combination' ) ] I've created a qs vul1=clientvul.objects.all() in a View. When I try to display the Data on a Template it Displays vul object(4803) I want to only display the 4803. -
ImportError: cannot import name 'reflections' from 'chatbot'
It doesn't work even I've imported from chatbot import Chat, reflections, multiFunctionCall.Let show me the way if you can deal with a issue It doesn't work even I've imported from chatbot import Chat, reflections, multiFunctionCall.I expect the way How to solve this problem -
"file wasn't available on site" error while it does exist, Django
I am programming a web that gets a .csv or .xlsx dataset, processes it, and returns it to the user using Django. I should say it is working OK on localhost. but not in a real server. views.py for creating a project and receiving the file: from django.core.files.storage import FileSystemStorage def create_prject(request): if request.method == 'POST': user = request.user name = request.POST.get('pname') data = request.FILES['data'] frequency = request.POST.get('frequency') unit = request.POST.get('unit') fs = FileSystemStorage(location=f'Media/Projects/{user}') filename = fs.save(data.name, data) dataurl = f'/Media/Projects/{user}/{filename}' header = request.POST.get('header') if header is not None: Project.objects.create(ProUser=user, Name=name, Data=filename, DataURL=dataurl, Header=True, Frequency=str(frequency), Unit=unit) else: Project.objects.create(ProUser=user, Name=name, Data=filename, DataURL=dataurl, Header=False, Frequency=str(frequency), Unit=unit) return redirect('dashboard') and after processing I want to return to user the files (the raw file and processed file must be downloadable). views.py after processing: def process(request): user = request.user if not user.is_authenticated: return redirect('login') else: if request.method == 'POST': # Some Processing Functions and creating the pandas.DataFrame excel_file = f'Despiked - {project.Name}.xlsx' dff.to_excel(excel_file, index=False) fs = FileSystemStorage(location=f'Media/Projects/Despiked/{user}') filename = fs.save(excel_file, open(excel_file, 'rb')) os.remove(excel_file) project.Processed_Data = filename project.Processed_DataURL = f'/Media/Projects/Despiked/{user}/{filename}' project.save() return redirect('dashboard') the download button will be shown in the template. but when I click on each file (raw or processed) I get the "File … -
Django django.db.backends.postgresql no available database error
I have this error and I don't have a typo django.core.exceptions.ImproperlyConfigured: '"django.db.backends.postgresql"' isn't an available database backend. Try using 'django.db.backends.XXX', where XXX is one of: 'mysql', 'oracle', 'postgresql', 'sqlite3' I've also tried with posgresql_psycopg2 since my django version is Django==2.2.28 I'm having this issue while I'm trying to run tests with tox. It works with django.db.backends.sqlite3but I want to run tests on postgres These are my deps from logs + docker compose -f docker-compose-test.yml exec -i -t test bash -c 'tox -e full_test ; chown 1563162805:1138207179 -R .' full_test installed: amqp==2.6.1,appdirs==1.4.4,asn1crypto==0.22.0,astroid==2.3.3,attrs==22.2.0,Authlib==1.2.1,backcall==0.2.0,beautifulsoup4==4.7.1,bento3 @ file:///bento3/.tox/.tmp/package/16/bento3-3.109.0.zip,billiard==3.6.4.0,boto3==1.14.23,botocore==1.17.63,bump2version==1.0.1,celery==4.4.7,certifi==2022.9.24,cffi==1.15.1,chardet==3.0.4,charset-normalizer==2.0.12,contextlib2==0.5.4,coreapi==2.3.3,coreschema==0.0.4,coverage==6.2,cryptography==3.4.7,cssselect==1.0.3,dateutils==0.6.8,decorator==5.1.1,defusedxml==0.7.1,distlib==0.3.7,Django==2.2.28,django-appconf==1.0.2,django-celery-results==2.2.0,django-classy-tags==2.0.0,django-debug-toolbar==3.1.1,django-elasticache==1.0.3,django-extensions==3.1.3,django-filer==0.9.115,django-filer-rest==1.4.6,django-filter==2.4.0,django-heartbeat==2.0.3,django-http-auth==2.0.0,django-identity-consumer==1.0.9,django-js-asset==2.0.0,django-mptt==0.11.1,django-polymorphic==2.1.2,django-rest-swagger==2.0.4,django-sekizai==2.0.0,django-simple-history==3.0.0,django-storages==1.9.1,django-tagging==0.5.0,django-tastypie==0.12.2,django-waffle==0.12.0,django-webpack-loader==0.7.0,djangorestframework==3.13.1,djangorestframework-jsonapi==3.1.0,docutils==0.15.2,easy-thumbnails==2.7,enum34==1.1.6,execnet==1.9.0,factory-boy==2.12.0,Faker==5.0.0,feedparser==6.0.8,filelock==3.4.1,google-api-python-client==1.3.1,httplib2==0.22.0,idna==3.4,importlib-metadata==1.7.0,importlib-resources==3.2.1,inflection==0.3.1,iniconfig==1.1.1,ipaddress==1.0.18,ipdb==0.13.9,ipython==7.16.1,ipython-genutils==0.2.0,isort==4.3.21,itypes==1.1.0,jedi==0.19.0,Jinja2==3.0.3,jmespath==0.10.0,json-schema-validator==2.4.1,kombu==4.6.11,lazy-object-proxy==1.4.4,lxml==4.7.1,MarkupSafe==2.0.1,mccabe==0.6.1,newrelic==7.16.0.178,oauth2client==1.5.2,objectpath==0.6.1,openapi-codec==1.0.0,packaging==21.3,parso==0.8.3,pbs-account-consumer==1.7.2,pbs-api-adapters==0.3.15,pexpect==4.8.0,pickleshare==0.7.5,Pillow==8.4.0,pluggy==0.13.1,prompt-toolkit==3.0.36,psutil==5.7.0,psycopg2==2.7.3.2,ptyprocess==0.7.0,py==1.11.0,pyasn1==0.1.9,pyasn1-modules==0.0.8,pycparser==2.18,pycurl==7.43.0.6,Pygments==2.14.0,pylibmc==1.5.2,pylint==2.4.2,pylint-celery==0.3,pylint-django==2.0.11,pylint-plugin-utils==0.7,pyOpenSSL==21.0.0,pyparsing==3.1.1,pytest==6.1.2,pytest-cov==2.8.1,pytest-django==4.4.0,pytest-factoryboy==2.0.3,pytest-forked==1.4.0,pytest-xdist==1.34.0,python-dateutil==2.5.3,python-googleanalytics==1.0.2,python-memcached==1.53,python-mimeparse==1.5.2,python3-openid==3.1.0,pytz==2023.3,redis==3.5.3,requests==2.26.0,rfc3987==1.3.7,rfeed==1.1.1,rsa==4.9,s3transfer==0.3.7,sentry-sdk==1.9.10,sgmllib3k==1.0.0,simplejson==3.8.2,six==1.10.0,soupsieve==1.9.5,sqlparse==0.4.4,text-unidecode==1.3,toml==0.10.2,tox==3.24.4,traitlets==4.3.3,typed-ast==1.4.3,typing-extensions==4.1.1,Unidecode==1.1.2,uritemplate==0.6,urllib3==1.26.7,vine==1.3.0,virtualenv==20.0.23,wcwidth==0.2.6,wrapt==1.11.2,zipp==1.2.0 full_test run-test-pre: PYTHONHASHSEED='2000759817' My python version is 3.6 -
How to use ModelChoiceField and ModelMultipleChoiceField without duplication in the database
I have a (main) Model that has multiple fk's class ParkingSpace(models.Model): name = models.CharField(max_length=50, blank=False) description = models.TextField(blank=False) image = models.ImageField(null=True, upload_to="images/parking_spaces") price = models.ForeignKey('Price', on_delete=models.CASCADE, null=True, blank=False) opening_hours = models.ForeignKey('OpeningHours', on_delete=models.CASCADE, null=True, blank=False) location = models.OneToOneField('Location', on_delete=models.CASCADE, null=True, blank=False) size = models.ForeignKey('Size', on_delete=models.CASCADE, null=True, blank=False) type = models.ForeignKey('Type', on_delete=models.CASCADE, null=True, blank=False) features = models.ManyToManyField('Features', blank=False, db_table='ParkingSpaceFeatures') reviews = models.ManyToManyField('Review', blank=False, db_table='ParkingSpaceReviews') contact_information = models.ForeignKey('ContactInformation', on_delete=models.CASCADE, null=True, blank=False) seller_account = models.ForeignKey('Account', on_delete=models.CASCADE, null=True, blank=False) Let me use size in this example: class Type(models.Model): STREET = "ST" # Parking space that is on the street PARKINGKLOT = "PL" # Parking space that is a parking lot (car park) PRIVATE = "PV" # Parking space that is being rented out by an individual TYPE_CATEGORY_CHOICES = [ (STREET,"Street Parking"), (PARKINGKLOT, "Car Park"), #used Car Park as user-friendly text as more commonly used (PRIVATE, "Private Parking") ] type_category = models.CharField(max_length=2,choices=TYPE_CATEGORY_CHOICES,blank =False,null=True) Now I want to create a form where the user will be able to enter the information to create a parking space. For fields such as size,type and features the form ModelChoiceField or ModelMultipleChoiceField will be used. The problem is when I use this and save it to the database there is dupliaction? … -
save user to db,if I have two customusers.How do i save them and generate JWT using SimpleJWT in DRF
I Have two Customusers in my project, The main Customuser: lass CustomUserManager(BaseUserManager): def create_user(self, email, password=None, **extra_fields): if not email: raise ValueError('The Email field must be set') email = self.normalize_email(email) user = self.model(email=email, **extra_fields) user.set_password(password) user.save(using=self._db) return user def create_superuser(self, email, password=None, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_superuser', True) if extra_fields.get('is_staff') is not True: raise ValueError('Superuser must have is_staff=True') if extra_fields.get('is_superuser') is not True: raise ValueError('Superuser must have is_superuser=True') return self.create_user(email, password, **extra_fields) class CustomUser(AbstractBaseUser, PermissionsMixin): email = models.EmailField(unique=True,null=False) profile_picture = models.ImageField(upload_to='profile_pics/', null=True, blank=True) first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) date_of_birth = models.DateField(null=True, blank=True, default=None) phone_number = models.CharField(max_length=20, blank=True,null=True) address = models.TextField(blank=True) total_tickets_sold = models.PositiveIntegerField(default=0) total_tickets_bought = models.PositiveIntegerField(default=0) is_verified = models.BooleanField(default=False) kyc_verified = models.BooleanField(default=False) social_media_account = models.CharField(max_length=100, blank=True) bank_account_name = models.CharField(max_length=100, blank=True) bank_account_iban = models.CharField(max_length=100, blank=True) bank_account_name_on_card = models.CharField(max_length=100, blank=True) user_rating = models.IntegerField(default=0) last_login = models.DateTimeField(null=True, blank=True) delete_account_request = models.BooleanField(default=False) user_tags = models.CharField(max_length=100, blank=True) account_creation_date = models.DateTimeField(auto_now_add=True) USER_TYPE_CHOICES = ( ('buyer', 'Buyer'), ('seller', 'Seller'), ) user_type = models.CharField(max_length=10, choices=USER_TYPE_CHOICES, default='buyer') ACCOUNT_STATUS_CHOICES = ( ('active', 'Active'), ('suspended', 'Suspended'), ('banned', 'Banned'), ) account_status = models.CharField(max_length=10, choices=ACCOUNT_STATUS_CHOICES, default='active') is_staff = models.BooleanField(default=False) # groups = models.ManyToManyField(Group, blank=True, related_name='customuser_set') # user_permissions = models.ManyToManyField(Permission, blank=True, related_name='customuser_set') objects = CustomUserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['first_name', 'last_name'] And also … -
Occasionally slow Redis requests from Django
On a Django application we are using Redis as caching backend using the django-redis package. While this works generally well there are occasionally Redis requests which are quite slow, ranging from a hundreds of milliseconds up to 4-5 seconds (!). The affected slow requests are simple GET and SET requests on various keys. A few of the keys have a little larger values like up to 180 KB but it happens also on keys with smaller values. We use Sentry's performance data feature to identify the slow requests. Those slow requests happen only one or two times a day, we didn't found a particular pattern or a way to reproduce it. Redis' slowlog does not show any of those slow requests, the slowest query listed is about 200ms and is not related to the slow queries we see in Sentry. The whole setup is hosted in the OpenTelekomCloud, which is some sort of an OpenStack instance. The Django application is running on multiple PODs in a Kubernetes cluster and the Redis server is a managed instance of the hosting provider (Kubernetes and Redis server are in the same VPC and same subnet). The Redis server is used almost exclusively as … -
django messages TemplateSyntaxError
I've been trying to use messages in django. I checked everything but keep getting this error below. TemplateSyntaxError at /home/ 'messages' is not a registered tag library. Must be one of: admin_list admin_modify admin_urls cache i18n l10n log static tz I made sure all the settings are properly configured in settings.py INSTALLED_APPS = [ 'schedule_app', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', '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', ] TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], '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', ], }, }, ] <h2> {% if messages %} {% for message in messages %} {% message %} {% endfor %} {% endif %} </h2> I also tried {% load messages %} on top of the template but still not working.. -
How to disable the back browser button after a user logs into a profile
I am trying to make a user not be able to go back to the login page from a profile page after logging in I have tried using @never_cache but it still seems to be saving the session and I can go back with the browser back button without logging out. I have then implemented the@cache_control(max_age=0, no_cache=True, no_store=True, must_revalidate=True) and its did not work. I then tried adding a random_string and timestamp after the login url but this made the profile page unreachable Here is my current user_login view: @cache_control(max_age=0, no_cache=True, no_store=True, must_revalidate=True) #Ensure you cant go back to login with the browser back button def user_login(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: messages.success(request, 'Logged in successfully') # Display success message login(request, user) timestamp_query_param = int(timezone.now().timestamp()) return redirect(f'profile/?t={timestamp_query_param}') # Handling authentication failure else: messages.error(request, 'Account does not exist or password is wrong') # Display error message and redirect the same page return render(request, 'login.html', {'error_message': 'Invalid credentials'}) return render(request, 'login.html') -
Advice for converting a web application (Django REST backend, React frontend) into a desktop application
I've been working on a web application which has pivoted, and now I'd like to convert it into a deployable desktop application. The frontend is made with React, and the backend is made using Django REST, along side some necessary services such as Celery, RabbitMQ, and Reddis. What would be the best practice here? Ideally I'd love to have everything shippable as a singular installation package, but I'm not sure that's feasible without scrapping the frontend and just making the whole app in Django. Any advice would be appreciated! -
Migrate the Databse from Sqlite3 to PostgreSQL
I want to change the databse of my django application from default(sqlit3) to PostgreSQL for better productivity I have Mayan EDMS App which is designed in Django and used SQLite3 as the database in the back-ends and i want to change the database of my Django app from SQLite3 to PostgreSQL Please help to to acheive this functionality i have tried by changing the databse details and i expect to achevie that functionality -
Django formset get all parameter value issue
I have a listview that show data in table, I have create a form that filter the data and show in table (working), but I want to make a formset, add filter condition and get all values without any success. views.py class CmsView(ListView): queryset = Cmsexport.objects.all().values() model = Cmsexport form_class = CmsFilterForm template_name = 'table.html' context_object_name = 'table' paginate_by = 10 def get_queryset(self): queryset = super(CmsView, self).get_queryset() field = self.request.GET.get('field') lookup = self.request.GET.get('lookup') value = self.request.GET.get('value') reset = self.request.GET.get('btn-reset') if (field and lookup and value) is not None: query = field.lower().replace(" ", "_") + '__' + lookup queryset = Cmsexport.objects.filter(**{ query: value }).values() if reset: queryset = Cmsexport.objects.filter().values() return queryset def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['form'] = CmsFilterForm() context['formset'] = CmsFormSet(queryset=Cmsexport.objects.none()) return context forms.py class CmsFilterForm(ModelForm): class Meta: model = Cmsexport #fields = ['name', 'state_text'] fields = '__all__' CmsFormSet = modelformset_factory( Cmsexport, fields = '__all__', extra=1 ) Any idea?