Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django dont get redirect when useing HttpResponseRedirect
i'm create a class views on django, and i want when user submit the form then redirect him to this url:http://127.0.0.1:8000/main/workhouses_list/ but when it redirect this url is printed in address bar: Request URL: http://127.0.0.1:8000/main/workhouse_reg/tsil_sesuohkrow:niam this is my code on the views: def workhouse_reg(request): if request.method== 'POST': workhouse_form=WorkhouseForm(request.POST) if workhouse_form.is_valid(): workhouse_form.save() return HttpResponseRedirect(reverse('main:workhouses_list')) else: return HttpResponse('not valid') this is my urls: app_name ='main' urlpatterns=[ path('workhouses_list/',views.workhouses_list,name='workhouses_list'),] i dont know why get this error..please some one idea..!! thanks..!! -
Give staff permissions to a particular group in Django
So I was making a Django app, and I differentiated users into various groups namely 'admin', 'customer', 'shopkeeper', etc. I can set if the user belongs to the 'admin' group only through the backend (through the Django admin panel). Now I want that whenever a user gets into the 'admin' group, he/she should automatically be given staff access or admin privileges automatically. PS: I know that we can go to the User tab and give him those permissions, but I want to automatically provide certain privileges to a corresponding group. How can that be done? -
Nginx up like orphan containers and not working (521 error)
I am using a container Nginx with docker-compose, but It have a bad configuration. When I link the domain to 8000 port I have a 521 error. It is my Dockerfile: FROM nginx COPY nginx.conf /etc/nginx/nginx.conf I used nginx-alpine, but it not working without alpine python, and I had to change it because Pandas not working with alpine. So, my nginx.conf is: user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; ## Default: 1024, increase if you have lots of clients } http { include /etc/nginx/mime.types; # fallback in case we can't determine a type default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; upstream app { server django:5000; } server { # use 'listen 80 deferred;' for Linux # use 'listen 80 accept_filter=httpready;' for FreeBSD listen 5000; charset utf-8; # Handle noisy favicon.ico messages in nginx location = /favicon.ico { return 204; access_log off; log_not_found off; } location / { # checks for static file, if not found proxy to app try_files $uri @proxy_to_app; } # django app location @proxy_to_app { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; … -
Can't implement sessions in Django
I had a global variable called list but to implement session, I inserted it in index function but where i previously used that variable in an add function now it is giving an error "Unresolved reference 'tasks'" i tried replacing it with a request.session["tasks"] but when i used it i couldn't add tasks to my to do list ap class NewTaskForm(forms.Form): task = forms.CharField(label="New Task") def index(request): if "tasks" not in request.session: request.session["tasks"] = [] return render(request,"tasks/index.html",{ "tasks": request.session["tasks"] }) def add(request): if request.method == "POST": form = NewTaskForm(request.POST) if form.is_valid(): task = form.cleaned_data["task"] tasks.append(task) return HttpResponseRedirect(reverse("tasks:index")) else: return render(request,"tasks/add.html",{ "form": form }) return render(request, "tasks/add.html",{ "form": NewTaskForm() })''' -
django_microsoft_auth reply URL issues and other questions
I am trying to use the django_microsoft_auth package. I have some questions and issues: When I try and login I get AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application - how do I debug or fix this? The docs say If you want multiple Site objects and generate authorize URL when accessing your site from multiple domains, you must not set a SITE_ID But if I do not set the SITE_ID my app will not run at all - I get Site matching query does not exist. So I am running with SITE_ID = 1. Is that an issue? The login with microsoft link is only on the admin page - how would I get that on my app's main login page? -
integrating clean architecture with ORM
I'm trying to develop a monolithic Django application with uncle.bob's clean architecture. The problem is I don't want to miss the powerful abilities of Django ORM but this will make a confusion at the same time. The ORM will handle the repository and data layer of application but at the same time makes problem in DTO because I don't want to transfer objects of type Django model. Should I create a port to convert Django model objects into plain old Python objects? I think Django is not much suitable for integrating with clean architecture. I mean for a monolithic large scale application Django will have many down sides. -
Django form: ModelChoiceField(multiple-select) similar to ModelAdmin.filter_horizontal?
How can I create a field ModelChoiceField(multiple-select) in my own form, similar to that available on admin site (ModelAdmin.filter_horizontal)? Two boxes side by side Interface that allows searching Follow the image below: ChoiceField-MultipleSelect "Admin" -
How to see queries run by Django ORM?
I have DEBUD = True in settings.py file. I have MySQL database configured with django. I have a Course model in courses/models.py. In courses/views.py, I have: @api_view(['GET']) def courses_list(request): courses = Course.objects.all() serializer = CourseSerializer(courses, many=True) return Response(serializer.data) Now, If I make request from Postman to hit this view, I think some query like SELECT * FROM COURSES must be executed. How to see which queries has been executed when I make a request to some backend URL? I have also tried from django.db import connection as described here, but got empty array like this: >>> from django.db import connection >>> connection.queries [] Please, help me achieve what I want to. -
how to filter value with category on detail page template in django?
i have video category in categories, i want to filter video category value in detail page like if i click on video category value then i want this code {% video object.video as my_video %}{% video my_video 'medium' %}{% endvideo %} in detail page. if i click other categories values then i want {% else %} part how can i do that? model.py class Article(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey( User, on_delete=models.CASCADE) thumbnail = models.ImageField(default='def.jpg', upload_to=article_path) video = EmbedVideoField(blank=True, null=True) timestamp = models.DateTimeField(auto_now_add=True) content = RichTextUploadingField(blank=True) category = models.ManyToManyField() def get_absolute_url(self): return reverse('news-detail', kwargs={'pk': self.pk}) views.py def NewsDetail(request, pk): obj = get_object_or_404(Article, pk=pk) context = { 'object': obj, } return render(request, 'news/detail.html', context) detail.html {% if cat in object.category > 'videos' %} {% video object.video as my_video %} {% video my_video 'medium' %} {% endvideo %} {% else %} <figure class="social-icon"> <img src="{{ object.thumbnail.url }}" /> </figure> <h2>{{ object.title }}</h2> <ul> {{ object.author.username }} {{ object.timestamp }} {% for cat in object.category.all %} {{ cat }} {% endfor %} </ul> {{ object.content|safe }} {% endif %} -
use json data in django template
I have a model that has one class that is made up of a number of others using OneToOneField. I would like to provide my template with nested data in json format and parse the json using template tags directly in my template. I have made some use of the Django rest framework. The following is a generic example of my codebase: models.py-------------------------------------- class Class1(models.Model): class_1_field_1 = models.CharField() class_1_field_2 = models.CharField() class Class2(models.Model): class_2_field_1 = models.CharField() class_2_field_2 = models.CharField() class MainClass(models.Model): field_1 = models.CharField() field_2 = models.IntegerField() field_3 = models.DateTimeField() class_1 = models.OneToOneField(Class1, on_delete=models.CASCADE,) class_2 = models.OneToOneField(Class2, on_delete=models.CASCADE,) class Class1Serializer(serializers.ModelSerializer): class Meta: model = Class1 fields = ('class_1_field_1', 'class_1_field_2') class Class2Serializer(serializers.ModelSerializer): class Meta: model = Class2 fields = ('class_2_field_1', 'class_2_field_2') class MainClassSerializer(serializers.ModelSerializer): class_1= Class1Serializer() class_2= Class2Serializer() class Meta: model = MainClass fields = ('field1', 'field2', 'field3', 'class_1', 'class_2') views.py------------------------------------- MainClassListView(ListView): context_object_name = 'mainclasses' model = MainClass serializer_class = MainClassSerializer def get_queryset(self): object_list = MainClass.objects.filter(user__in=[self.request.user]) return object_list def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) serializer = MainClassSerializer(MainClass.objects.filter(user__in=[self.request.user]), many=True) context['data'] = JSONRenderer().render(serializer.data) return context def dispatch(self, request, *args, **kwargs): return super(MainClassListView, self).dispatch(request, *args, **kwargs) index.html---------------------------------------------------- ... {{data}} ... This tag displays a string with the following format: b'[valid_json_is_displayed_here]', where the valid_json_is_displayed_here is a … -
Are Django STATIC_ROOT files fetched locally on the server or over an Http call?
I'm using the following line in my Django project to embed a logo image file on a PDF. It works fine, but I was just wondering, is the STATIC_ROOT file accessed from the server machine locally or are they fetched via an http call? (Just trying to speed up the pdf generation process as much as possible.) from proj.settings import STATIC_ROOT logo = Image.open(STATIC_ROOT + "img/" + "logo.png") -
How to create functional tests for Django view
In my Django app, I have a view which makes a request to an API server to retrieve data, then displays this data back in a template. I am completely new to testing, and am unsure about what functional tests I can create to test this view. I have created a test to assert that the popup loads and returns a HTTP response 200 (mocking out the API and using a pre-defined mock data set). How else can I test this view? How can I test whether the view is loading the correct data? -
Error when connecting Django project to mysql?
I'm using python 3 and I have tried to connect my Django project(django3) to MySQL but I keep getting this error even though I installed mysqlclient. I get this error when I'm trying to connect to MySQL Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 377, in execute django.setup() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate app_config.import_models() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models self.models_module = import_module(models_module_name) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 728, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/contrib/auth/models.py", line 2, in <module> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/contrib/auth/base_user.py", line 47, in <module> class AbstractBaseUser(models.Model): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/models/base.py", line 121, in __new__ new_class.add_to_class('_meta', Options(meta, app_label)) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/models/base.py", line 325, in add_to_class value.contribute_to_class(cls, name) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/models/options.py", line 208, in contribute_to_class self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/__init__.py", line 28, in __getattr__ return getattr(connections[DEFAULT_DB_ALIAS], item) … -
While executing a Celery Task 'AsyncResult' object is not iterable
I am Using Celery to perform a task in the background on form submission. As soon as form is submitted during POST request, I have created a task to execute in the back ground using delay method. This task processes some click operations on some other web using selenium web driver and return two python lists after task execution. Based on list content I want to display pop up message. When I execute the task using celery and run the Django web development server on form submit , I am getting error message: 'AsyncResult' object is not iterable”. Please suggest how to resolve this issue and proceed further. Here is my code snippet: sample List content which obtained through selenium operations on web page is as shown below: board_not_used_list = ['16123','14960'] board_mgr_permissions_not_present_list = [ '23456','45678'] views.py: -------- def conclude_key_issue_form(request, id=None): if id: action = 'edit' model = get_object_or_404(ConcludeKeyIssues, pk=id) else: action = 'submit' model = ConcludeKeyIssues() message = "" if request.method == 'POST': form = ConcludeKeyIssuesForm(request.POST, instance=model) selected_model_name = request.POST.get('registered_model') if form.is_valid(): new_key_issue_request = form.save(commit=False) new_key_issue_request.integrator_id = request.user.username integrator_username = new_key_issue_request.integrator_id integrator_password = form.cleaned_data['integrator_pwd'] new_key_issue_request.integrator_pwd = integrator_password new_key_issue_request.save() form.save_m2m() created_pk = new_key_issue_request.pk if id is None: board_not_used_list, board_mgr_permissions_not_present_list = task_check_board_availability_and_permissions.delay(created_pk) … -
Django, How to validate year dependent on another class foreig key
In Django models i have two classes and I want to validate class Comment date to be less or equal class Report year. class Report(models.Model): year = models.PositiveIntegerField('year of report', default=date.today().year) and another class: class Comment(): report = models.ForeignKey(Report, on_delete=models.CASCADE, related_name='comment') date = models.DateField('date', validators=[year_validation]) How can i do this thnig? I discovered something like custom validators. I made a function and used it but how can i get acces to second class here? I wanted to do something like this but it doesn't work. def year_validation(self, value): if value.year > self.report.year: raise ValidationError('The year should be not later than: {}'.format(self.report.year)) -
Django url rendering
I am trying to build a simple django project but facing troubles with url related changes in case of second app. My first app is app1 and contains login, registration and few other things. urls.py in app1 url(r'^$', views.loginView, name='loginView'), url(r'^register/$', views.registerationView, name='registerationView'), url(r'^app2/', include('app2.urls')) urls.py in app2 url(r'^$', views.homeView, name='homeView'), After logging in, the user is successfully redirected to url http://127.0.0.1:8000/app2 which is what i want for the register too. Instead, it starts searching for the url http://127.0.0.1:8000/register/app2 which is non existent and gives me 404 error. I want to look for the same url as after login which is http://127.0.0.1:8000/app2. This is my views.py file for user register def registerationView(req): form = forms.registerForm() if req.method=='POST': form = forms.registerForm(req.POST) if form.is_valid(): form.save() return redirect('blog/') return render(req, 'register.html', context={'form': form}) -
How to unittest a method from a django class based view that does not deal with a request/response object?
I am trying to unittest the addition method inside of a class based view. The method I am testing does not deal with a request or response object. What is the easiest way to unit test this? When I look at django docs the unittests for class based views, seem to test the entire class rather than narrow in on testing individual methods. views.py class MathView(APIView): def addition(self): # how do i unittest this method? sum = 1+1 return sum def get(self, request, format=None): sum = self.addition() return Response(sum) -
Speed up tuning for many to many model
I have a model which has a few manytomany relationship class Article(models.Model): authors = models.ManyToManyField(Author) tags = models.ManyToManyField(Tag) genre = models.ManyToManyField(Genre) then I need to fetch more than 10000 rows by using ArticleSerializer. class ArticleSerializer(serializers.ModelSerializer): authorObjs = serializers.SerializerMethodField() tagObjs = serializers.SerializerMethodField() genreObjs = serializers.SerializerMethodField() class Meta: model = Article fields = ('id','authorObjs','tagObjs','genreObjs') def get_authorObjs(self,obj): res = [] for my in obj.authors.all(): res.append({ "id" : my.id, "name" : my.name }) return res def get_tagObjs(self,obj): res = [] for my in obj.tags.all(): res.append({ "id" : my.id, "name" : my.name }) return res def get_genreObjs(self,obj): res = [] for my in obj.genres.all(): res.append({ "id" : my.id, "name" : my.name }) return res It works well but it takes 20~30 sec. I want to speed up as much as possible. I checked around and thought fetching manytomany objects takes more time than fetching a normal column. At first I try to cache with @method_decorator in view. class ArticleViewSet(viewsets.ModelViewSet): queryset = Article.objects.all() serializer_class = ArticleSerializer @method_decorator(cache_page(None)) @method_decorator(vary_on_cookie) However new article is added every 10 min. so it's not appropriate. I am guessing there is still ways like 1.cache each row of Database.... 2.index key's tuning... Am I correct?? Is there any good idea to speed … -
Django-Channels AsyncConsumer not working
using SyncConsumer with below code works fine class BackgroundTaskConsumer(SyncConsumer): def create_users(self, message): number = message['number'] id = message['id'] UserFactory.create_batch(number, groups=(id,)) But when using AsyncConsumer with below code stop working class BackgroundTaskConsumer(AsyncConsumer): async def create_users(self, message): number = message['number'] id = message['id'] await UserFactory.create_batch(number, groups=(id,)) -
Error: Invalid hook call when using with redux
Sorry if i am asking a beginner's question. Im very new to React.js and recently i have been trying to grasps the concepts by following this tutorial : JustDjango What im trying to accomplish is creating a login form and it uses redux to store the states , my code is as follows : import React from 'react'; import { Form, Icon, Input, Button, Spin } from 'antd/lib'; import { connect } from 'react-redux'; import { NavLink } from 'react-router-dom'; import * as actions from '../store/actions/auth'; const FormItem = Form.Item; const antIcon = <Icon type="loading" style={{ fontSize: 24 }} spin />; class NormalLoginForm extends React.Component { handleSubmit = (e) => { e.preventDefault(); this.props.form.validateFields((err, values) => { if (!err) { this.props.onAuth(values.userName, values.password); this.props.history.push('/'); } }); } render() { let errorMessage = null; if (this.props.error) { errorMessage = ( <p>{this.props.error.message}</p> ); } const { getFieldDecorator } = this.props.form; return ( <div> {errorMessage} { this.props.loading ? <Spin indicator={antIcon} /> : <Form onSubmit={this.handleSubmit} className="login-form"> <FormItem> {getFieldDecorator('userName', { rules: [{ required: true, message: 'Please input your username!' }], })( <Input prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />} placeholder="Username" /> )} </FormItem> <FormItem> {getFieldDecorator('password', { rules: [{ required: true, message: 'Please input your Password!' }], })( … -
Expecting JSON object instead of JSON Array
In my django application with database engine djongo, I'm trying to return a JSON response by retrieving from my database. But, I'm receiving JSON array instead of JSON object. Currently, there is only one record in my database. Please see the code below. model.py class bloodDonors(models.Model): location=models.CharField(max_length=20) name=models.CharField(max_length=20) phone=models.IntegerField() address=models.TextField() bloodGroup=models.CharField(max_length=5) type=models.CharField(max_length=20) def __str__(self): return self.name views.py class bloodDonersView(viewsets.ModelViewSet): queryset = bloodDonors.objects.all() serializer_class = bloodDonorsSerializer JSON Reponse: [ { "id": 3, "location": "Delhi", "name": "Tony", "phone": 888, "address": "South street", "bloodGroup": "B+", "type": "blood-donation" } ] But, actually I needed the response as given below: { "id": 3, "location": "Delhi", "name": "Tony", "phone": 888, "address": "South street", "bloodGroup": "B+", "type": "blood-donation" } -
django : Once User fills form after login,whenever user login again he should not see form again that is been applied
I have an application where user login and where appears a form user fill the form and redirect to next page where he sees the status of his applied form, So now i am trying if user has filled the form whenever he logins he should redirect to status page and if user login and have not filled form he should get the form template. SO can anyone help me how to achieve these i am able to login user and get the form filled but again if same user is logging in , I am getting the form appear. -
How can I pass in multiple parameters in my Url
So I'm a developer noobie, and building my first project from scratch. I'm currently building a messaging system for my app. How it's supposed to work is that A user goes to a link that checks their current conversations, so conversations are displayed. Then FROM the conversations, there is a link that takes them to a page that displays the contents of that conversation. But I'm having a problem here, because when I try to get the other user's pk to display their messages, my code is instead getting request.user pk and getting ALL the messages that the current user has going on not exclusively between 2 users within that specific conversation. Now, when I manually, and by manually I mean typing the actual pk of the specific user I want to check on that has messages with my user, when I manually enter their pk number in the http, I am able to get the correct messages and exclusive messages. Currently, my href link is passing conversation.pk and I haven't figured out how to get the other users pk. Everything I have tried has kept passing my request.user pk. So I guess what I'm asking is how can I … -
Django use forloop for create multi objects
I have model : aa= Order.objects.get(Id="15") cc=Commission.objects.filter(maincommission__mainorder__id=aa.id) If cc come back with 3 results how can I create all three in CommissionHistory (models.model): percentage=cc.percentage Thx -
Vue Router router-link only changes the last section of url path
I am using Django alongside Vuejs, and I am serving vuejs from django using django_webpack_loader,but I have a problem with Vue Router, so first this is my Vue Router config file: Vue.use(VueRouter); export default new VueRouter({ mode:'history', routes:[ { path:'/', component:Home, }, { name:'dashboard', path:'/dashboard', component:Dashboard, }, { name:'categories', path:'/categories/add', component:Category, }, { path: '/dashboard/course/:uu_id/index', component:CourseIndex, name:'courseIndex', props:true }, { path: '/dashboard/course/:uu_id/posts/:post_id/edit', component:PostEdit, name:'PostEdit', }, ] }); so when I us router.push every thing is fine but when I am in /categories/add and I want to head to new page say dashboard using router-link component it takes me to /categories/dashboard, now if I again try to change path to '/categories/add' it takes me to categories/categories/add, it always replaces the last part of the path with my target path. what is the problem?