Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
How to "login" in Django Rest Framewrok
I recently trying django. So, i want to create an login (API) here is what i do from django.db import models from django.contrib.auth.models import AbstractBaseUser class User(AbstractBaseUser): id = models.AutoField(primary_key=True) email = models.CharField(max_length=100, unique=True) password = models.CharField(max_length=200) register_date = models.DateTimeField(auto_now_add=True, blank=True) USERNAME_FIELD = 'email' class Meta: db_table = "user" and here is my view class Login(KnoxLoginView): permission_classes = (permissions.AllowAny,) def post(self, request, format=None): serializer = AuthTokenSerializer(data=request.data) serializer.is_valid(raise_exception=True) user = serializer.validated_data['user'] login(request, user) return super(Login, self).post(request, format=None) My UserSerializer from api.models import User from rest_framework import serializers class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields =['id','email','password'] extra_kwargs = {'password': {'write_only': True}} def create(self, validated_data): user = User( email=validated_data['email'], ) user.set_password(validated_data['password']) user.save() return user There is no problem when i create new user. But when i try to login i get this { "non_field_errors": [ "Unable to log in with provided credentials." ] } i'm 100% sure the email and password is correct. Did i miss something ? -
When Django deletes users, why are avatars deleted together?
I created a user model, the user has a default avatar. class User(AbstractUser, BaseModel): avator = models.ImageField(upload_to='user/avator/', default='user/avator/default_avator.png') I put the default avatar here When the user is deleted, i found that the default avatar will also be taken away together!! delete code: user.delete() I want to know how to make Django not delete the Avatar together when deleting the user, hoping to add a judgment or something. -
trying to access Django Admin docs raises no reverse match error
I'm trying to generate docs for my Admin so I installed docutils and added the code: # installed apps [ 'jazzmin', 'admin_numeric_filter', 'django.contrib.admindocs', 'django.contrib.admin', # rest of installed apps... ] # in my urls url(r'^admin/doc/', include('django.contrib.admindocs.urls')), But I'm getting the following error when trying to access the docs: NoReverseMatch at /admin/doc/ Reverse for 'app_list' with keyword arguments '{'app_label': 'auth'}' not found. 1 pattern(s) tried: ['admin/(?P<app_label>consumer_api|users|authtoken)/$'] -
How to fix python manage.py giving no response
When I run the command python manage.py runserver I have installed python 3.9.0 and django 3.2.10 -
Unable to get CREATE modal when creating new user using DJANGO
i got a problem when creating new user using ajax crud in django . The program allows me to edit and delete the table data but shows INTERNAL SERVER ERROR when click on to ADD NEW . The below code i use in IndexPage.html to call all the product list <iframe id="encoder_iframe" height=75% width="50%" src='{% url 'product_list' %}'></iframe> then in product list i have a button that call product create . <button type="button" class="btn btn-primary js-create-product" data-url="{% url 'product_create' %}"> this button will call the productcreate file <form method="post" action="{% url 'product_create' %}" class="js-product-create-form"> {% csrf_token %} <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true"></span> </button> <h4 class="modal-title">Create</h4> </div> <div class="modal-body"> {% include 'includes/partial_product_form.html' %} </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="submit" class="btn btn-primary">Create Customer</button> </div> </form> and partial_product_form.html is below {% load widget_tweaks %} {% for field in form %} <div class="form-group{% if field.errors %} has-error{% endif %}"> <label for="{{ field.id_for_label }}">{{ field.label }}</label> {% render_field field class="form-control" %} {% for error in field.errors %} <p class="help-block">{{ error }}</p> {% endfor %} </div> {% endfor %} So when i click on new customer the page will be like this before click on New Customer button … -
How to offset timezone on the Back-End using Django?
I would like to ask for support for this problem. Basically, I am working on an app in which it will generate values based on the current month, date, and year let's say Company ID based on the user's preference while leaving the TZ on settings.py untouched. I live in the timezone 'Asia/Manila', however, I have read some devs discussing that setting the Django TZ other than 'UTC' is problematic so I'm leaving it as is. But, my app requires users to save generated Company ID based on their own user-configured timezone. I know it's easy to reflect the user's timezone on the frontend via a template, however, I would like my to do something like that as well on the back-end and I'm not really sure how. I have already read the documentation many times but I still can't it. I want it to be as 'Django' as possible. -
Django doesn't see the 'templates' and 'static' folders
I am coming from Django 1.x of which everything worked fine in regards of the said problem. I tried starting a new project in Django 3.x the same way I start projects on the older version. The problem I noticed is in regards of the templates and static directories. After I set them up, Django doesn't seem to "detect" them in some way and my IDE (PyCharm) doesn't suggest them when I point something on those directories. I use the same IDE on both the old and new versions of Django. Here is the structure of my project: myproj |_ myapp |_ myproj |_ templates |_myapp |_ base.html |_ index.html | |_ static In my settings.py: import os BASE_DIR = Path(__file__).resolve().parent.parent TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates') TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [TEMPLATE_DIR], 'APP_DIRS': True, Now, when I use {% extends "app/base.html" %} on my index.html, it doesn't 'suggest' the base.html (of which in older versions of Django it does suggest it) so something must be wrong. Here's an example: But placing myapp/base.html, it would still work. Compared to an older project of mine which uses Django 1.x: Not just in the template files but almost everywhere in Django like … -
Python cursor how do I replace with a string and maintain quotation marks in a SQL que?y
I'm using django. I'm having trouble replacing the email string in the query. It needs quotations around it since it compares strings. I've tried using parameters on the execute function but that did not work: cursor.execute("SELECT password,id FROM account WHERE email = %(mail)s", {'mail': userEmail}) I get a DatabaseError at / ORA-00936: missing expression q = "SELECT password,id from account WHERE email = '%s'" % userEmail cursor.execute(q) This produces a correct SQL query with the quotations. But I've heard this is a bad idea due to sql injection. Regardless, I'm getting a ORA-00933: SQL command not properly ended error when I did this. -
Django Running Balance / Cumulative Balance
I have a transaction model with a function to calculate the balance(running balance/cumulative balance), but the balance output is returning as a Queryset. <QuerySet [{'id': 1, 'cumsum': -9.0}, {'id': 2, 'cumsum': -16.0},{'id': 3, 'cumsum': -21.0}]> how do I fix my function so that the balance only shows the numbers such that Oct 16 is -9.00, Oct 18 is -16.00, then Oct 20 is -21.00. Thank you in advance. model.py class Transaction(models.Model): transaction_date = models.DateField() account_nickname = models.ForeignKey(Accounts, on_delete=models.CASCADE) amount = models.FloatField() @property def balance(self): return Transaction.objects.annotate(cumsum=Func(Sum('amount'),template='%(expressions)s OVER (ORDER BY %(order_by)s)',order_by="id")).values('id', 'cumsum').order_by('id', 'cumsum') views.py def index(request): all_transactions = Transaction.objects.all() context = { "transactions": all_transactions } return render(request,'pages/index.html', context) index.html {% for each_transaction in transactions %} <tr> <td>{{each_transaction.transaction_date}}</td> <td>{{each_transaction.account_nickname}}</td> <td>{{each_transaction.amount}}</td> <td>{{each_transaction.balance}}</td> </tr> {% endfor %} Output: -
How to configure & enable OpenID Connect in DJango+Wagtail app?
I'm currently using the python-social-auth/social-core lib with a DJango app, which is configured (and working) to authenticate Wagtail CMS users with our (free) Azure Active Directory Tenant. Our NFRs stipulate that authentication should occur using OpenID Connect and to this end we've installed "social-auth-core" with the "openidconnect" extra like this in requirements.txt: ... social-auth-core[openidconnect] social-auth-app-django ... Again, things seem to work A-OK and users can login, but here's my problem - and I know I'm missing something here: As far as I know, OpenID Connect is simply a modification/addition to OAuth2.0 that gives OAuth super powers of authentication - not just authorisation - but I don't know if my DJango+Wagtail app is now just automagically configured to "just work" as/with OpenID Connect, or whether there's some additional logic/validation/config/whatever that I need to apply to the app. I don't see anything relevant in the official python-social-auth docs for Azure AD, and I don't see how/if I need to explicitly enable OpenID within Azure AD itself. Can anyone help? Thank you. -
Django/DRF: How can I get more than one slug_field from serializers.SlugRelatedField?
I have a serializer to populate an AJAX table that looks something like this: class BookSerializer(seralizers.ModelSerializer): author = serializers.SlugRelatedField( many=True, read_only=True, slug_field="name" ) class Meta: model = Book fields = ( "name", "author", "slug" ) author can contain any number of authors, which is why I need to handle it this way. Currently I can print out the name of the book and link it with its slug. I also get a list of author names rather than the IDs. My question is how I can also get the slugs for each author page? I would like to link each author to its own page, but using something like author.slug doesn't work, nor did adding this: author_slugs = serializers.HyperlinkedRelatedField( many=True, read_only=True, view_name="slug" ) Then I added author_slugs to fields -- this threw an error that author_slugs is not a valid field in the Book model. Is there a way to access more than field for each author? -
How to add multiple css file in django3 in a single html file?
I have a html file named index.html in template folder and two css file computer.css and mobile.css both are in static folder. How can i use them in a single index.html file. -
django channel_layer.send not sync even use async_to_sync
class ChatConsumer(WebsocketConsumer): def connect(self): print(self.channel_name) self.accept() def disconnect(self, close_code): pass def receive(self, text_data): async_to_sync(self.channel_layer.send)(self.channel_name, { "type": "chat.message", "text": "1", }) print("=============channel================") async_to_sync(self.channel_layer.send)(self.channel_name, { "type": "chat.message", "text": "2", }) def chat_message(self, event): message = event["text"] print(message) self.send(text_data=json.dumps({'message': message})) i call channel_layer.send twice in receive function , suppose should print like 1 ========channel======== 2 but it print =========channel======= 1 2 anyone could help to tell me where have problem ? -
Using the select_related function in Django
Hi so i'm trying to display table retailer_book, but instead of a seller_id, i want it to display the retailer instead. These are the tables class retailer(models.Model): sellerID = models.IntegerField(primary_key=True) retailer = models.CharField(max_length=255) def __str__(self): return self.retailer class retailer_book(models.Model): ISBN = models.ForeignKey(books, on_delete = models.CASCADE) sellerID = models.ForeignKey(retailer, on_delete = models.CASCADE) condition = models.CharField(max_length=255) price = models.FloatField() reviews= models.CharField(max_length=255) ID = models.IntegerField(primary_key=True) bookType = models.CharField(max_length=255) I've tried : object_list1 = retailer_book.objects.filter(ISBN_id = query).select_related("sellerID_id") but it doesn't display retailer when i try to display it. Here's my views.py class SearchResultsView1(ListView): model = books template_name = 'TextSearch/search_results.html' context_object_name = "object_list" def get_queryset(self): # new query = self.request.GET.get('q') object_list1 = retailer_book.objects.filter(ISBN_id = query).select_related("sellerID_id") return object_list and here's my HTML code <h1>Book Options: </h1> <table border="1"> <tr> <th> ID </th> <th> Retailer </th> <th> condition </th> <th> Book Type </th> <th> Reviews </th> <th> Price </th> </tr> {% for result in object_list %} <tr> <td> {{result.ID}} </td> <td> {{result.retailer}} </td> <td> {{result.condition}} </td> <td> {{result.bookType}} </td> <td> {{result.reviews}} </td> <td> {{result.price}} </td> </tr> {% endfor %} </table> -
Django displays tow different timezones for the same model attribute when viewing in admin site vs a query for the model in a script
How to make consistant timezone across Django. In my settings.py I have TIME_ZONE = 'America/New_York' and USE_TZ = True. I have a model def MyModel(models.Model): date_time = models.DateTimeField(auto_now_add=True) if I view a field from that model (say pk=1) it correctly displays value for an eastern timezone. From my terminal, when I run python manage.py shell and make a query for that same field (pk=1), it will print the date_time attribute of that field in UTC format as follows: datetime.datetime(2020, 10, 22, 0, 19, 28, 696739, tzinfo=<UTC>) Why is this happening? And how can I make it so that all queries use the correct timezone when filtering by date? -
OperationalError Django admin
I'm using a legacy mysql database on django. I need to display another table on the "bibliografias" admin page, it is referenced by the db with foreign keys. I get this error: OperationalError at /admin/accounts/bibrest51/ (1054, "Unknown column 'bibrest51.tema_f_id' in 'field list'") admin.py def get_tema(self, obj): return obj.tema_f.tema_nome get_tema.short_description = 'Tema' models.py class Tema(models.Model): tema_id = models.AutoField(primary_key=True) tema_nome = models.CharField(max_length=150, blank=True, null=True) datacriado = models.DateTimeField(db_column='dataCriado') # Field name made lowercase. @property def tema_id(self): return self.tema_id def __str__(self): return str(self.tema_id) class Meta: managed = False db_table = 'tema_table' class Bibrest51(models.Model): cadastro_id = models.AutoField(primary_key=True) tema_f = models.ForeignKey(Tema,on_delete=models.CASCADE) tema_id = models.IntegerField(blank=True, null=True) class Meta: managed = False db_table = 'bibrest51' verbose_name = "Bibliografia" verbose_name_plural = "Bibliografias" -
Serializing Nested foreign key objects
whoever is reading this, hope you're doing well. I am creating a social media application which includes post in it and likes and comments just like any other social media site, I am trying to send the data from my backend to front end via serializers, the problem I am getting through is I am not able to get the output of whole data but partial data. Following represents my models.py for the objects I am trying to serialize models.py class User(AbstractUser): contact_no = models.CharField(max_length=15,null=True,blank=True) profile_picture=models.ImageField(upload_to=to_upload,default="defaultprofile.jpg") class Post(models.Model): posted_by=models.ForeignKey(User,on_delete=models.CASCADE) date= models.DateField(auto_now=True) time=models.TimeField(auto_now=True) content=models.CharField(max_length=2000) media=models.ImageField(default=None,blank=True,upload_to=to_upload_post) class Like(models.Model): Liked_by=models.ForeignKey(User,on_delete=models.CASCADE,related_name="likes") post=models.ForeignKey(Post,on_delete=models.CASCADE) date = models.DateField(auto_now=True) time = models.TimeField(auto_now=True) and the serializers that I'm using is serializers.py class UserSerializer(serializers.ModelSerializer): class Meta: model=User fields=['id','username','first_name','last_name','profile_picture'] class LikeSerializer(serializers.ModelSerializer): Liked_by=UserSerializer() class Meta: model=Like fields=['Liked_by'] class PostSerializer(serializers.ModelSerializer): posted_by=UserSerializer() likes=LikeSerializer(many=True) class Meta: model=Post fields=['posted_by','id','content','date','time','media','likes'] This does not raise any errors while importing it but it doesn't give complete data. The output I'm getting is { 'posted_by': OrderedDict([ ('id', 7), ('username', 'user'), ('first_name', ''), ('last_name', ''), ('profile_picture', '/media/defaultprofile.jpg')]), 'id': 4, 'content': 'This is a test post for likes', 'date': '2020-10-22', 'time': '05:34:55.979863', 'media': None } but what I'm trying to get is Desired Output { 'posted_by': OrderedDict([ ('id', 7), ('username', 'user'), ('first_name', … -
Django: How to override the display of ModelForm fields in UpdateView, specifically
I have a function-based view that is currently working successfully. However, I want to learn how to create the equivalent Class Based View version of this function, using the generic UpdateView class -- though I imagine the solution, whatever it is, will be the exact same for CreateView, as well. I know how to create and use Class Based Views generally, but there is one line of my function-based view that I have not been able to work into the corresponding UpdateView -- as usual with the Generic Editing Class Based Views, it's not immediately clear which method I need to override to insert the desired functionality. The specific task that I can't port-over to the CBV, so to speak, is a line that overrides the queryset that will be used for the display of a specific field, one that is defined as ForeignKey to another model in my database. First, the working function-based view, with highlight at the specific bit of code I can't get working in the CVB version: @login_required def update_details(request, pk): """update details of an existing record""" umd_object = UserMovieDetail.objects.select_related('movie').get(pk=pk) movie = umd_object.movie if umd_object.user != request.user: raise Http404 if request.method != 'POST': form = UserMovieDetailForm(instance=umd_object) … -
Django Template Query Set and filters
In my view, I have a model that returns all instances of a model that has a foreign key to user. This view renders a profile page where the model.user is checked against the request.user, if it matches, it prints out information on that model on the profile page. This is what I have in my views.: @login_required(login_url='loginpage_company') @allowed_users_company(allowed_roles=['company']) def profile_company(request): print(request.user) companies = Company.objects.all() responses = Response.objects.all() context = { 'companies': companies, #'company_reviews': company_reviews, #'total_reviews': total_reviews, 'responses': responses, 'info': "No company claimed yet", 'infor': 'Not Available', } return render(request, 'companyusers/profile_company.html', context) for my models I have the following. class Company(models.Model): Online_Merchant = 'merch' Education = 'edu' Transportation = 'trans' Hospitalism = 'hosp' Healthcare = 'health' Construction = 'const' Blog = 'blog' Finance = 'fin' Media = 'media' Government_Agency = 'agency' Other = 'other' Manufacturing = 'manufacturing' sector = [ (Online_Merchant, 'Online Merchant'), (Education, 'Education'), (Transportation, 'Transportation'), (Hospitalism, 'Hospitalism'), (Healthcare, 'Healthcare'), (Construction, 'Construction'), (Blog, 'Blog'), (Finance, 'Finance'), (Media, 'Media'), (Manufacturing, 'Manufacturing'), (Government_Agency, 'Government Agency'), (Other, 'Other') ] Free = 'Free' Premium = 'Premium' package = [ (Free, 'Free'), (Premium, 'Premium') ] Abuja = 'Abuja' Abia = 'Abia' Adamawa = 'Adamawa' Akwa_Ibom = 'Akwa Ibom' Anambra = 'Anambra' Bauchi = 'Bauchi' … -
How to download a file from a Django template?
Hello Community! I'm working on a small Django project that consists of creating a website that allows you to download multimedia content from YouTube, through the "youtube-dl" library. I summarized the code as much as possible, remaining with the following directory structure: In the file "views.py": from django.shortcuts import render import youtube_dl def home(request): return render(request, 'TestApp/index.html') def download_success(request): url = request.GET.get('url') obj = Media(url) return render(request, 'TestApp/thanks.html', {'content': obj}) class Media(object): '''Class where the logic implemented with "youtube-dl" is found ''' def __init__(self, url): self.url = url ydl_opts = { 'format': 'best' } with youtube_dl.YoutubeDL(ydl_opts) as ydl: ydl.download([self.url]) In the file "urls.py": from django.urls import path from TestApp import views urlpatterns = [ path('', views.home, name='Home'), path('Thanks', views.download_success, name='thanks'), ] In the directory "/templates/TestApp" are the HTML templates, which have the following structure: "index.html": <!DOCTYPE html> <html lang="es"> <head> {% block title %} <title>misiteweb.com</title> {% endblock %} <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1"> {% load static %} <!-- CSS --> <link rel="stylesheet" type="text/css" href="{% static 'TestApp/css/styles.css' %}"> <!-- BOOTSTRAP --> <link rel="stylesheet" href="{% static 'TestApp/vendor/css/bootstrap.min.css' %}"> </head> <body> {% block content %} <div class="container"> <br></br> <center><h1> Download Panel </h1></center> <form action="Thanks" method="get"> <br> <div class="form-group"> <input … -
I am using Django password reset view but I am getting error after the password confirm page
Error Page accounts/urls.py password_reset_complete.html -
Python-Pulp: How to store the objective function and constraints in a database for user modification/recall?
I'm building a Django app that allows a user to save their models as different "Scenarios" where they can use a web interface to manually adjust the objective function and some of the constraints. The whole app is built and functioning fine, except for figuring out how to store the OBJ/Cons in the db/table and how to show them back to the user. For the sake of example, let's use the Two stage production program found in the docs. Right now, the model is hardcoded as a .py file and that should transition somehow into a DB. My question becomes, how would you design the table to store the objective function and constraints for access, review, modification, and run by the user? -
How to adjust datatables fonts in Django
Does anybody know how to adjust the field size of Show xx entries in DataTables? Recently my datatables started showing a larger font for the number and for the life of me I can't figure out the CSS to control the size of the field. Is it possible? -
What happens if I run django migrations multiple times in parallel?
So, I often am working with projects where there will be multiple dockerized django application servers behind a loadbalancer, and frequently I will need to deploy to them. I frequently use Watchtower to do pull-based deploys. I build a new image, push it to dockerhub, and watchtower is responsible for pulling those images down to the servers and replacing the running containers. That all works pretty well. I would like to start automating the running of django migrations. One way I could accomplish this would be to simply add a run of the manage.py migrate to the entrypoint, and have every container automatically attempt a migration when the container comes online. This would work, and it would avoid the hassle of needing to come up with a way to do a lockout or leader election; but without some sort of way to prevent multiple runs, there is a risk that multiple instances of the migration could run at the same time. If I went this route, is there any chance that multiple migrations running at the same time could cause problems? Should I be looking for some other way to kick off these migrations once and only once? -
MySQL connection problem using Python/Django
Working on a Python(Django web framework, PyCharm Professional IDE) application and having a difficult time trying to resolve why I cannot connect to my DB when I execute the application. Here is the error: django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on....) Oddly enough this works fine in my Windows Environment, but for some reason not working on my Mac. Same code, same DB server (MySQL Community server 8.0.16), and same MySQL workbench(also 8.0.16). Something else that is odd, when using the DB Pane in my PyCharm IDE I can see my DB, can run queries, can refresh my DB and log in with my root password with no problem. The following is a code snippet from my Settings.py file... # Local: 'default': { # MySQL database engine class. 'ENGINE': 'django.db.backends.mysql', # MySQL database host ip. 'HOST': '127.0.0.1', # port number. 'PORT': '3306', # database name. 'NAME': 'my_db', # user name. 'USER': 'root', # password 'PASSWORD': 'password', # connect options 'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", } }, } Python 3.7.3 Django==2.2.2 mysqlclient==1.4.4 mysql==0.0.2 mysql-connector-python==8.0.22 PyMySQL==0.10.1 MySQL Community server 8.0.16 MySQL workbench 8.0.16 Note: In regards to Python packages, I prefer to stick mysqlclient since that is what I'm using on my …