Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Server error on getting access token OAuth2 Django
I work with an API that is based on OAuth2 and I have this error Code: server_error, Message: No user/userId parameter returned from getauthCode API says that during authentification on their site they add some cookie that is not transferred to my redirect_uri and hence the error. So I was wondering maybe my algorithm logic isn't right because I got no other leads? def callback(request): """My redirect_uri that receives authorization code. """ get_access_token(request.GET.get("code")) # POST request for access_token get_clients_data(access_token["access_token"]) # POST request for clients data with access_token return HttpResponse('{"success" : true}') def link_request(request): """Authorization request that redirects the user to API URL for authorization. """ return redirect(get_link()) -
How to Implement Biometric Authentication on a ReactJS Web Application using a USB Fingerprint Scanner
I currently have a web application set up using ReactJS for the front-end, Django and Apache Guacamole for the back-end and MariaDB for the database. I also have a Secugen Hamster Plus Fingerprint Scanner which when plugged in to the computer, will be used for user authentication on the login page of the web application (using ReactJS). Does anyone know how I can go about writing code to retrieve fingerprint images from the scanner to store them in the database using Django models, and then compare the stored fingerprint images with the user-inputted fingerprint when he attempts to login? I have been unsuccessful in finding any working examples or documentation for reference on the Internet. -
Django redirect is appending tuple to URL when used reverse
When I use success_url = reverse_lazy('weatherdata:sample-list') The URL it redirects to is: http://localhost:8000/weather/('/weather',) Instead of the expected: http://localhost:8000/weather/ For some context. These are my modules: main/urls.py urlpatterns = [ path('weather/', include(('weatherdata.urls', 'weatherdata'), namespace="weatherdata")), path('admin/', admin.site.urls), ] weatherdata/urls.py urlpatterns = [ path('', WeatherSampleList.as_view(), name='sample-list'), path('takesample', WeatherByLocationFormView.as_view(), name='take-sample'), ] And in my weatherdata/views.py class WeatherByLocationFormView(FormView): [...] success_url = reverse_lazy('weatherdata:sample-list'), -
Gunicorn Allow All HTTP Headers
I read that the Django Development server filters Headers containing underscores as discussed here: Custom headers missing in requests to Django As I have no control over the headers and I need to receive them in the Django Application, it is mentioned that this can be done with Gunicorn. Is there a special configuration of gunicorn required such that it accepts all headers? -
raise JSONDecodeError("Expecting value", s, err.value) from None Python
I sometimes have this problem. But it's always resolved. This time impossible to find a solution. There are many post for the same subject but no resolution in my case. I am trying to get data from my api. It sometimes works(with data without none value) and with the data containing None value, it doesn't work. I think the problem is about the none values. I have this error Exception Type: JSONDecodeError Exception Value: Expecting value: line 1 column 75 (char 74) Any help is appreciated. @api_view(['GET']) def edges_of_a_network(request, pk): try: roadnetwork = RoadNetwork.objects.get(pk=pk) except RoadNetwork.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) else: edges = Edge.objects.filter(network=roadnetwork) edges = str(list(edges.values("edge_id", "name", "length", "speed", "lanes"))).replace("'",'"') edges = json.loads(edges) edges = json.dumps(edges, indent=2) if request.method == 'GET': return HttpResponse(edges, content_type="application/json") screenshot -
Laravel Model default permission (View, Add, Change and Delete) same as Django default permissions
Is there a way to generate default permissions for each model in laravel, same as in django models. Example : after creating Post model, default permission will be auto created, such as : can_view_post, can_create_post, can_change_post, can_delete_post Please kindly drop your idea below. Thanks in advance. -
Something to change front-end with respect to back-end?
I want to know that is there anything that check backend for data if it is changed or not. If the data is changed then it will update frontend also without reloading the page, without any click or some event or without using setInterval method (Javascript). Please help. (Note: I am using Django as backend framework.) -
How to use jQuery on Django Media Form
i'm trying to inject extra javascript and jQuery on Django form through Media meta class. I return a form to the create.html template and rendered ok with js functions was executed but not jQuery functions. base.html for templates: ... {% block content %} {% endblock %} ... {% block javascript %} <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> ... <script type="text/javascript"> console.log('base.html js'); </script> {% endblock javascript %} create.html: {% extends "base.html" %} {% load static %} {% block javascript %} {{ block.super }} <script type="text/javascript"> console.log('create.html js'); </script> {% endblock javascript %} {% block content %} {% if form %} {{ form.media }} {% include 'form.html' %} {% endif %} {% endblock content %} form.html: {% load static %} {% for field in form %} {{ field|add_class:"form-control" }} {% endfor %} forms.py: class PlaceForm(forms.ModelForm): class Media: js = ( 'js/custom_tag_widget.js', ) custom_tag_widget.js: $(document).ready( function() { console.log('form media js'); }); I have this console output and appear an error: form.html js ReferenceError: $ is not defined base.html js crear:562:15 create.html js Anybody could help me please ? Thanks in advance. -
Django-Tables2 get current page number
I have a simple Table where I use a LinkColumn to access a view which toggles a value from true to false, unfortunately this resets my list to the first page. Now it should be possible to pass a specific page into the table object: table.paginate(page=request.GET.get("page", 1), per_page=25) return render(request, "people_listing.html", {"table": table}) How can I pass the current page number to my view? The request does not include this info and I can't seem to reference self in the Table Class (which has an attribute Page at least) Any suggestions? -
Display a variable in a Django form
I am trying to display a value from the database to a form. So if a user filled his email address, when he is connected he will see it in the email address form. I already did a post about this but I didn't get a lot of answer so I won't show my code this time but just ask you : Do you have an example of how to do it please ? -
To do work of mage.py in django without using it
I am making a project using amazon_kclpy in docker, i am directly running a file through docker command CMD $(amazon_kclpy_helper.py --print_command --java /usr/bin/java --properties ./code/apps/events_consumer/main.properties), in main.properties folder there is a comand to run base.py file, now i want to save data in redis, i am doing everything right, i checked it through python manage.py shell, it runs perfectly, but when i am trying by directly running, it is not saving data, also without python manage.py shell i tried to save data using only interpreter python commnd and it is also not able to save data, i want to know is there any way to do the work of manage.py file without running it. or any other method to make it work. -
bulk_update_or_create option is available in django?
I need to do a bulk create or update operation on a table , like update_or_create, is there any option available for bulk_update_or_create ? chart_data_obj = StockHistory( id=uuid, date=datetime_object, open=float(data['open']), close=float(data['close']), high=float(data['high']), low=float(data['low']), change=float(data['change']), change_percent=float(data['changePercent']), symbol_id=ticker_symbol ) chart_data_obj_list.append(chart_data_obj) StockHistory.objects.bulk_create(chart_data_obj_list) -
NoReverseMatch at /products/ "adding products to the basket"
I am fairly new and working on a project and want to just add products to the basket I have struggled with this for a few days and just don't know what to do to make it work. can anybody help me or refer me to some page that can help me? Thank You NoReverseMatch at /products/ Reverse for 'addtobasket' with arguments '('Python Tutorial',)' not found. 1 pattern(s) tried: ['productapp/\.\./basket/$'] models: class Products(models.Model): products_name = models.CharField(max_length=30) pub_date = models.DateTimeField(auto_now=True) price = models.CharField(max_length=10) note = models.CharField(max_length=200) inventory = models.IntegerField(default=1) product_pic = models.ImageField(upload_to ='images/', default='images/broken/broken.png') def __str__(self): if (self.inventory<=0): return self.products_name + ' (Out of Stock)' return self.products_name class Basket(models.Model): products = models.ForeignKey(Products, on_delete=models.CASCADE) pub_date = models.DateTimeField(auto_now=True) amount = models.IntegerField(default=1) def __str__(self): return str(self.products) urls: app_name = 'productapp' urlpatterns = [ path('products/', views.products, name='products'), path('basket/', views.basket, name ='basket'), path('', views.home, name='home'), path('../basket/', views.addtobasket, name='addtobasket'), ] views: def products(request): products_list = Products.objects.order_by('-pub_date') context = {'products_list': products_list} return render(request, 'productapp/products.html', context) def basket(request): basket_list = Basket.objects.order_by('-pub_date') context = {'basket_list': basket_list} return render(request, 'productapp/basket.html', context) def addtobasket(request, name): basket = Basket.objects.all() product = Products.objects.get(Products=name) basket.products.add(product) return HttpResponseRedirect(reverse("basket")) html: <body> <section> {% block content %} {% if products_list %} {% for product in products_list %} <div> … -
Charts.js in Django: Charts cannot appear
I am trying to create a charts app for my django project using Chart.js. I tried doing the very basic thing which I see in Youtube videos - which is to copy and paste the sample code given in https://www.chartjs.org/docs/latest/ in my file chart.html, but the chart doesn't appear when I tried running the project. I have added the script tag with the chart.js link to my base.html, so I am very confused of what went wrong. The following is my code: base.html <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- semantic UI --> <link rel="stylesheet" type='text/css' href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.14/semantic.min.css"> <!--Chart js--> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.4.1/chart.min.js" integrity="sha512-5vwN8yor2fFT9pgPS9p9R7AszYaNn0LkQElTXIsZFCL7ucT8zDCAqlQXDdaqgA1mZP47hdvztBMsIoFxq/FyyQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <!-- jQuery --> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <title>{% block title %}{% endblock title %}</title> </head> <body> {% block scripts %} {% endblock %} {% block content %} {% endblock %} </body> </html> chart.html {% extends 'base.html' %} {% block title %}Genre Popularity Ranking{% endblock title %} {% block scripts %} <script> $(document).ready(function(){ var ctx = document.getElementById('myChart').getContext('2d'); var myChart = new Chart(ctx, { type: 'bar', data: { labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'], datasets: [{ label: '# of Votes', data: [12, 19, 3, 5, 2, 3], backgroundColor: … -
how to keep logged in user in the current page and not to let him go to home from the address bar?
I want to keep the logged in user in the current page that he is viewing and not allow him to visit the home page again without loggin out either by pressing the backbutton provided by the browser or form the address bar. Is there any decorator that i can use, i tried to write on form a tutorial but i couldn't figure out how to keep the user in the current page. If there is any auto logout method availble please suggest me. decorators.py def unauthenticated_user(view_func): def wrapper_func(request, *args, **kwargs): if request.user.is_authenticated: return redirect('current_page') else: return view_func(request, *args, **kwargs) return wrapper_func views.py @unauthenticated_user def index(request): return render(request, 'index.html') -
Object permissions in Django based on the value of a specific model attribute
I am trying to figure out how to setup some permisions to access and change some models in Django. I think that the built-in permissions system is not flexible enough and I am pretty sure that the answer is in Django Guardian, but I have not been able to figure out how to apply it to my case. The structure of models I have is way more complex, but I think the following simplified use case illustrates my bottleneck when setting permisions, and that if I sort that out, I should be able to apply it to the rest of the models, where needed. Let's consider the following three models: Organization: A Research organization, typically a university. User: A registered user of the web app, who can be a Contributor (default) or a Maintainer (all Maintainers are also Contributors). These two are Groups at the moment, but I am open to try other aproaches if that's better. The user will always belong to an Organization ValuableData: Some data obtained as a result of some research. It is added by Contributors and they belong to the Organization the user belonged to at the time of adding the data. It also has … -
Django: IntegrityError null value in column "user_id" of relation "" violates not-null constraint
I am trying to save data to the db but I am getting this error. I think I understand the error but am not sure how to correct it. Basically I am trying to post a review for a product and it seems like when trying to save to the DB it doesn't know which user is saving this review? I believe user_id is null for whatever reason. But honestly I could be wrong, I am kind of stuck at this point. I feel as if the easy solution is simply to set null = true in my user model but I do not want to do that. Any help is greatly appreciated models: class Review(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True) rating = models.DecimalField(max_digits=2, decimal_places=1, validators=[MinValueValidator(Decimal('0.1'))]) comment = models.TextField(validators=[MinLengthValidator(10)]) date = models.DateField(auto_now=True) def __str__(self): return str(self.user) class Product(models.Model): name = models.CharField(max_length=120) shortened_name = models.CharField(max_length=50) date_of_creation = models.CharField(max_length=20, null=True) history = models.CharField(max_length=255) price = models.DecimalField(max_digits=9, decimal_places=2) discount_price = models.FloatField(blank=True, null=True) style = models.CharField(max_length=50) artist = models.ForeignKey(Artist, on_delete=models.SET_NULL, null=True) image = models.ImageField(upload_to='images', null=True) slug = models.SlugField() def __str__(self): return self.name def get_absolute_url(self): return reverse('product', args=[self.slug]) def save(self, *args, **kwargs): self.slug = slugify(self.shortened_name) super().save(*args, **kwargs) def get_add_to_cart_url(self): return reverse('add_to_cart', … -
Django returns only the id field instead of the entire object when queryset is used in subquery
Let's say I have the following query in Django: qs = Product.objects.filter( pk__in=Book.objects.order_by("code", "-version").distinct("code"), release_year__isnull=False ) which reads: Out of the latest products, give me the ones with a release year. I'm curious why the subquery does NOT require me to convert the latest products to pk values like so: pk__in=Book.objects.order_by("code", "-version").distinct("code").values_list("pk", flat=True) Looking at the raw SQL subquery using qs.query, looks like this is done for me automatically: SELECT DISTINCT ON ("core_product"."code") "core_product"."id" # only the id field is returned FROM "core_product" ORDER BY "core_product"."code" ASC, "core_product"."version" DESC Is this stated anywhere in the docs? I'm wondering which one of these variations is considered "best practice" or if there's another a better alternative (should I use Django's Subquery expression anywhere?). The former solution is less verbose but the latter solution is more explicit. -
Access Ubuntu django server in VM from Windows
I have a Django server up and running in my Ubuntu VM using python manage.py runserver 0.0.0.0:8000 I can access this in the VM browser. When I try to access using Windows browser the connection is never established. How do I make this happen? -
Getting Type error Failed to fetch in fetch Api
I am getting an error in fetch API while calling the django server. The request used here is: async function analyse() { await fetch("http://localhost:8000/classify/", { method: 'POST', body: JSON.stringify({ premise: document.getElementById('pre').value, hypothesis: document.getElementById('hypo').value, }), headers: { "Content-Type": "application/json; charset=UTF-8", "Authorization":"Basic c2hhc2h2YXQ6cGFuZGV5 } }).then(function (response) { console.log(response); return response.json() }).then(function (text) { console.log(text); }).catch(err => { console.log(err) }) It is returning an error with Type Error. The request is getting to the django server and the response is printed to the terminal correctly. But it is not returning the response to the browser. def post(self, request): print(request.data) print(request.data["premise"]) print(request.data["hypothesis"]) data = [[request.data["premise"], request.data["hypothesis"]], ['i am good', 'I am great']] temp_data = pd.DataFrame(data, columns=['premise', 'hypothesis']) temp_dataset = MyDataset(temp_data, PredictorConfig.tokenizer, labels=False) temp_dataloader = DataLoader(dataset=temp_dataset, sampler=BatchSampler( SequentialSampler(temp_dataset), batch_size=8, drop_last=False), shuffle=False) temp_preds = submission_predict(PredictorConfig.model, temp_dataloader, PredictorConfig.device) print(temp_preds[0]) return JsonResponse({"result":temp_preds[0]}) What to do here? -
Django admin, page not found in custom view
I encountered very annoying problem. I have created my own AdminSite like this: from django.contrib import admin from django.template.response import TemplateResponse from django.urls import path class MyAdminSite(admin.AdminSite): def get_urls(self): urls = super().get_urls() my_urls = [ path('statistics/', self.admin_view(self.statistics), name='statistics'), ] return urls + my_urls def statistics(self, request): context = dict( self.each_context(request), ) return TemplateResponse(request, 'admin/statistics.html', context) I have created my own AdminConfig and assigned it into my INSTALLED_APPS, created html file, then in my root urls added it like this: urlpatterns = [ url(r'^admin/', admin.site.urls), ] I have logged in into my admin page and when I'm trying to open localhost:8000/admin/statistics I receive this: Page not found (404) Request URL: http://localhost:8000/admin/statistics/ Why this is happening? Did I miss something? -
Calculated fieds in python django
I have a Table in my database with fields id, body_temp, and status, and its defined by the following class: class Temperature(models.Model): ... id = models.AutoField(primary_key=True) body_temp = models.DecimalField(max_digits=3, decimal_places=1) status = models.CharField(max_length=20) ... the field body_temp will be populated by means of a form, on the other hand, I want the field status to store a string based on the value entered in the field body_temp. if the temperature value entered in the field body_temp is less than 38, I want the field status to store a string normal. However, if the temperature value entered in the field body_temp is greater or eaqual to 38, I want the field status to store a string suspect. How can I do this? -
How can the user view details of other users complaints in django
When a user clicks on the other users complaint, how can he view that particular complaints details without being able to edit it? when the user clicks on any one of the cards, a page with that complaints details should open but the user should not be able to edit it. What do I type into the view for that? models.py: class Complaint(models.Model): user = models.ForeignKey(User, on_delete= models.CASCADE, null = True, blank=True) id = models.AutoField(blank=False, primary_key=True) reportnumber = models.CharField(max_length=500 ,null = True, blank= False) eventdate = models.DateField(null=True, blank=False) event_type = models.CharField(max_length=300, null=True, blank=True) device_problem = models.CharField(max_length=300, null=True, blank=True) manufacturer = models.CharField(max_length=300, null=True, blank=True) product_code = models.CharField(max_length=300, null=True, blank=True) brand_name = models.CharField(max_length = 300, null=True, blank=True) exemption = models.CharField(max_length=300, null=True, blank=True) patient_problem = models.CharField(max_length=500, null=True, blank=True) event_text = models.TextField(null=True, blank= True) document = models.FileField(upload_to='static/documents', blank=True, null=True) def __str__(self): return self.reportnumber forms.py: class DateInput(forms.DateInput): input_type = 'date' class ComplaintForm(ModelForm): class Meta: model = Complaint fields = '__all__' widgets = { 'reportnumber': forms.TextInput(attrs={'placeholder': 'Report number'}), 'event_type': forms.TextInput(attrs={'placeholder': 'Event type'}), 'eventdate': DateInput(), 'device_problem': forms.TextInput(attrs={'placeholder': 'Device Problem'}), 'event_text': forms.Textarea(attrs={'style': 'height: 130px;width:760px'}), 'manufacturer': forms.TextInput(attrs={'placeholder': 'Enter Manufacturer Name'}), 'product_code': forms.TextInput(attrs={'placeholder': 'Enter Product Code'}), 'brand_name': forms.TextInput(attrs={'placeholder': 'Enter Brand Name'}), 'exemption': forms.TextInput(attrs={'placeholder': 'Enter Exemption'}), 'patient_problem': forms.TextInput(attrs={'placeholder': 'Enter Patient Problem'}), … -
FileNotFoundError: [Errno 2] No such file or directory: 'books.json'
I am new to Django I get an error file not found when trying to read a json file that is in the same directory as views.py # Load books from JSON file with open('/books.json') as file: books = json.load(file) def index(request): return render(request, 'books/index.html', books) -
How to make a view know when a model instance in another view is saved
I am working with an API that does not send the response directly(maybe that's an api standard). For a crude example: def callbackview(request): #This view will receive the actual required data from the api server, and save response to #the db(there might be a better way to do this) # Actually uses drf to parse/save the data ... return Response(...) def apisenderview(request): #send the api request resp=requests.get("https://api_url.com/api",{"callbackurl":"callbackview",...}) ... The issue is that the response received by resp in apisenderview is simply the server queue details. What I think I need is a way for apisenderview to know when the API server has sent a response to callbackview. A solution I am considering is: ... def apisenderview(request): #send the api request resp=requests.get("https://api_url.com/api",{"callbackurl":"callbackview"}) callbackinstance=None: while not callbackinstance: callbackqs=callbackmodel.objects.filter(queue_id=resp.queue_id) if callbackqs.exists(): callbackinstance=callbackqs.first() #Continue with view operations ... However, the solution above may have too many db calls(I haven't tested it yet).How do I optimize this process to ensure minimal apisenderview response time?