Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Consume messages from django
Is it possible to consume messages from rabbitmq using celery in django? Messages are being sent from a different non-django app import os from celery import Celery from django.conf import settings os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings') app = Celery("test") app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) app.conf.task_routes = { 'task.send_emails':{ 'queue': 'sendmail', 'exchange': 'sendmail', 'routing_key': 'sendmail' } } app.config_from_object('django.conf:settings') -
Django Query - Multiple Inner Joins
we currently have some issues with building complex Q-object queries with multiple inner joins with django. The model we want to get (called 'main' in the example) is referenced by another model with a foreign key. The back-reference is called 'related' in the example below. There are many objects of the second model that all refer to the same 'main' object all having ids and values. We want to get all 'main' objects for wich a related object with id 7113 exists that has the value 1 AND a related object with id 7114 that has the value 0 exists. This is our current query: (Q(related__id=u'7313') & Q(related__value=1)) & (Q(related__id=u'7314') & Q(related__value=0)) This code evaluates to FROM `prefix_main` INNER JOIN `prefix_related` [...] WHERE (`prefix_related`.`id` = 7313 AND `prefix_related`.`value` = 1 AND `prefix_related`.`id` = 7314 AND `prefix_related`.`value` = 0) What we would need is quite different: FROM `prefix_main` INNER JOIN `prefix_related` a INNER JOIN `prefix_related` b [...] WHERE (a.`id` = 7313 AND a.`value` = 1 AND b.`id` = 7314 AND b.`value` = 0) How can I rewrite the ORM query to use two INNER JOINS / use different related instances for the q-objects? Thanks in advance. -
Database design for a shop/warehouses chains (and inventory)
I'm developing a web application (in Django) for managing a group of shoes shops (and linked warehouses). In the database I have a table of Shoes (a row for every kind), then a table of Instances (that is; a foreign key to a model of shoes, size and colours). Now, I also have a table for shops and warehouse, but now I have to design how to represent the state of the inventory for every shop\warehouse (how many items for every place). Which is the best design I should adopt? In a OO world, every Place (Shop or Warehouse) object would have a data structure or something for managing the quantity for every item, but I don't think this is a good way for a database. -
How to have django-oscar alongside other apps?
I am trying to add a django-oscar shop to an existing django website. My problem is that the templates of the two are somehow clashing, such that I can either see the existing website, or the shop, but not both. Here is the overarching urls.py: from django.conf.urls import include, url from django.contrib import admin from oscar.app import application urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^', include('main.urls')), # oscar url(r'^shop/', include(application.urls)), ] And in the settings: TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ # os.path.join(BASE_DIR, 'templates'), OSCAR_MAIN_TEMPLATE_DIR ], # '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', 'oscar.apps.search.context_processors.search_form', 'oscar.apps.promotions.context_processors.promotions', 'oscar.apps.checkout.context_processors.checkout', 'oscar.apps.customer.notifications.context_processors.notifications', 'oscar.core.context_processors.metadata', 'main.context_processors.google_analytics' ], 'loaders': [ 'django.template.loaders.app_directories.Loader', 'django.template.loaders.filesystem.Loader', ], }, }, ] If I switch the order of the loaders, either the original website (in app 'main'), or the Oscar shop, can no longer be accessed/viewed. So I'm not sure what esoteric detail I'm overlooking, and the docs don't cover this. Cheers. -
Django filter DateTimeField by TimeField value
I have a Timeslot model with start and end fields of type DateTimeField. Another class Constraint also has start and end fields but of type TimeField. I can filter Constraint objects by the start and end values of a given timeslot: Constraint.objects.filter(start=timeslot.start) But now I am in need of filtering Timeslot based on the value of a given constraint. The scenario is having multiple timeslots that define different datetime ranges throughout a time domain, and I want to select those outside a given time range specified by an existing constraint: Timeslot.object.filter(Q(end__lte=constraint.start) | Q(start__gte=constranit.end)) For example, let's say I have timeslots going through October 23rd to October 29th, each day starting at 10am and ending at 1pm. The duration would be of 1 hour, so each day would have 3 timeslots, which totals in 21 timeslots. 23 Oct, 10am-1pm (3 timeslots) 24 Oct, 10am-1pm (3 timeslots) 25 Oct, 10am-1pm (3 timeslots) 26 Oct, 10am-1pm (3 timeslots) 27 Oct, 10am-1pm (3 timeslots) 28 Oct, 10am-1pm (3 timeslots) 29 Oct, 10am-1pm (3 timeslots) And a constraint that defines the range 11am-12pm. I would like to select the timeslots outside that range. The result would be the timeslots between 10am and 11am, and those … -
Issue with DataTable.ajax.reload and stored procedure
Hi I have trouble using Datatable.reload.ajax with my stored procedure. View (index): def index(request): listOPT = [] Data = [] Req = TbMouvementinit.objects.exclude(dateheureclot=u'') data = getDataQuery(Req) django = json.dumps(data) cursor = connections['site'].cursor() try: cursor.execute("{CALL SP_webGET_RESUME_MVT_INIT_ACTIF}") Req = dictfetchall(cursor) sql = json.dumps(Req) finally: cursor.close() fluxState = settings.FLUX_MANAGER_STATE if fluxState != True: listOPT.append('FLUX AXEREAL : OFF') else: listOPT.append('NULL') cursor = connections['site'].cursor() try: cursor.execute("{CALL SP_webGET_RESUME_MVT_INIT_ACTIF}") mouvements = dictfetchall(cursor) finally: cursor.close() return render(request, 'index.html', locals()) View (listMVTInit) : def listMVTinit(request): #Req = TbMouvementinit.objects.exclude(dateheureclot=u'') #data = getDataQuery(Req) #return HttpResponse(json.dumps(data), content_type = "application/json") cursor = connections['site'].cursor() try: cursor.execute("{CALL SP_webGET_RESUME_MVT_INIT_ACTIF}") Req = dictfetchall(cursor) finally: cursor.close() return HttpResponse(json.dumps(Req), content_type = "application/json") Template : {% load static %} <!doctype html> <html> <head> <meta charset="utf-8"> <title>Liste Mouvement initiaux</title> <meta name="generator" content="WYSIWYG Web Builder 12 - http://www.wysiwygwebbuilder.com"> <link href="../static\css/Gestion_Mouvements.css" rel="stylesheet"> <link href="../static\css/index.css" rel="stylesheet"> <link href="{% static 'css/jquery-ui.min.css' %}" media="all" rel="stylesheet"> <link href="{% static 'css/jquery.dataTables.min.css' %}" media="all" rel="stylesheet"> <link href="{% static 'css/bootstrap.min.css" rel="stylesheet' %}" media="all"> <link href="{% static 'css//bootstrap-datetimepicker.min.css' %}" media="all" rel="stylesheet"> <script src="{% static 'js/jquery-1.12.4.min.js' %}"></script> <script src="{% static 'js/jquery.dataTables.min.js' %}"></script> <script src="{% static 'js/jquery-ui.min.js' %}"></script> <script> $(document).ready(function() { table = $('#indexTab').DataTable({ ajax: "{% url 'listMVTinit' %}", }); }); setInterval(function(){table.ajax.reload();}, 2000); </script> </head> <body> <div id="wb_Shape1" style="position:absolute;left:4px;top:5px;width:1300px;height:100px;z-index:0;"> <img src="../static\images/img0001.png" id="Shape1" alt="" … -
Xml request django use zeep library
Sorry for my english. Before i didnt work whith xml and for me it something new. I have soap api, and i need get some data frome this xml api. Now i try create test request and print something. I user zeep library for my project. I write python -mzeep 'my link' and i have some instruction. Example: ns0:AccountInfo(number: xsd:string, secret: xsd:string, country: xsd:string, language: xsd:string, behalfOf: xsd:string) getVersionInfo(accountInfo: ns0:AccountInfo) -> responseStatus: ns0:ResponseStatus, data: {country: xsd:string, build: xsd:string, date: xsd:dateTime, licensed: xsd:boolean}[] Then i write code in pythone: class Test(View): def get(self, request, *args, **kwargs): client = Client("link") account = client.get_type("ns0:AccountInfo") account_info = account(number="111111", secret="123123123123", country="ua", language="en") response = client.service.getVersionInfo(accountInfo=account_info) print(response) return HttpResponse('Hello, World!') But i have error: Exception Value: A request was found for which no data versions could be retrieved. -
How to write this query in django queryset? Find all topic_name for gaurd name = Algebra?
Defined Models Are... Gaurd(name, category) Chapter(Gaurd, Chapter, rates) and Topic(chapter, topic_name, level) These three are connected via foreign key with each other. -
django-filter and DRF: AND clause in a lookupfield
This question expands on this one. Suppose my models are class Car(models.Model): images = models.ManyToManyField(Image) class Image(models.Model): path = models.CharField() type = models.CharField() and my filter class is class CarFilter(django_filters.FilterSet): having_image = django_filters.Filter(name="images", lookup_type='in') class Meta: model = Car then I can make queries like ?having_image=5 and get all cars that have an image with pk=5. That's fine. But what if I need to return both cars with this image AND also cars with no images at all, in one list? How do I unite two conditions in one django_filters.Filter? -
Django migration from dynamic fields
i' ve the following django model: class Apple(models.Model): text = models.TextField() . I' ve already many records, and i' d like to add a subject field to the model, so it' ll look like: class Apple(models.Model): text = models.TextField() subject = models.CharField(max_length = 128) . In this case i run a makemigrations, but since subject can be empty, i need to set a default value either in the model, or in the migration file. What would be the correct procedure if i' d like to take the subject from the text for the already existing database lines (for instance: text[:64])? My solution would be to create a migration with a default value, run a management commend to update the values, and with a new migration remove the default value for the subject. Is there a better solution, right? What is it? Can i somehow combine / do this in the migration itself? Python: 3.4.5 Django: 1.9.2 . -
Django: Paginating Aggregated query
Imagine I have simple database model like in the django tutorial: class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') Source: https://docs.djangoproject.com/en/1.11/intro/tutorial02/#creating-models I want a result that looks like this Month | Number of Question of this Month 2017-01 | 201 2017-02 | 345 ... | ... How to create the matching QuerySet and how to paginate it? -
Django: Ordering Users in Messaging App
Here's my model, class Message(models.Model): sender = models.ForeignKey(User, related_name="sender") receiver = models.ForeignKey(User, related_name="receiver") msg_content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) I wants to order the Users based upon who sent a message to "request.user" or to whom "request.user" sent a message most recently! As we see on social networks. How can I do that? -
Django - AttributeError: 'NoneType' object has no attribute 'method'
I noticed that when I use DRF documentation I get error AttributeError: 'NoneType' object has no attribute 'method' and this is associated with this line if self.request.method == 'POST' Any ideas how can I solve it? class UserObject(GenericAPIView): def get_serializer_class(self, *args, **kwargs): if self.request.method == 'POST': return ObjectPostSerializer return ObjectSerializer -
Django MQTT use shell not working
My problem is when I use python manage.py shell and I type my code line by line, then It will working fine(receive messages and print it). But when I use python manage.py shell < my.py It will not working( receive message and print it) Is any problem with threads? here is my script.py code: import os import django os.environ["DJANGO_SETTINGS_MODULE"] = 'myprojects.settings' django.setup() import paho.mqtt.client as paho_mqtt from mqtt.mqtt import on_connect, on_message username = "****" password = "****" client = paho_mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.username_pw_set(username=username, password=password) client.connect("********", 1883, 60) client.loop_forever() And here is my function code def on_connect(client, userdata, flags, rc): try: client.subscribe(topic="********") print('subcriptions') except Exception as e: print("connect subscribe error " + str(e)) def on_message(client, userdata, msg): data = msg.payload.decode('utf-8') res_json = json.loads(data) print(res_json) -
How to increase time to end UWSGI connection
Now each of my connections is closed after 60 seconds. I would like to increase this time to 300 seconds. To do this I changed my ini file : [uwsgi] # Django-related settings # the base directory (full path) chdir = /home/root/djangoApp # Django's wsgi file module=djangoApp.wsgi:application # process-related settings # master master = true # maximum number of worker processes processes = 10 # the socket (use the full path to be safe http = 127.0.0.1:8000 # ... with appropriate permissions - may be needed chmod-socket = 664 # clear environment on exit vacuum = true protocol = uwsgi harakiri = 300 http-timeout = 300 But it doesn't work, still the process is killed after 60 seconds. I will be very thankful for help, Thanks -
Django: Messaging App
Here's my model, class Message(models.Model): sender = models.ForeignKey(User, related_name="sender") receiver = models.ForeignKey(User, related_name="receiver") msg_content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) Here i'm trying to order the User based upon who sent a message to "request.user" or to whom "request.user" sent a message most recently! As we see on social networks. Here's what I tried, users = User.objects.filter(Q(sender__receiver=request.user) | Q(receiver__sender=request.user)).annotate(Max('receiver')).order_by('-receiver__max') This code is working fine only if request.user sent someone a message (it's shows the name of that user at top) but if someone sent request.user a message it's not showing their name at the top. How can I do that? -
Call stored procedure
I want to know how can I call a stored procedure from oracle using django. I must insert in multiple tables and I already have a procedure that does that. How should I call this proc? This is how I am trying now: c = connection.connection.cursor() c.callproc('PKG_SOMETHING.pr_insert',(i_param, o_param1, o_param2) ) c.close() return o_param1 + o_param2 -
DRF - Filter queryset in PrimaryKeyRelatedField
I've the following models: class ModelX(models.Model): STATUS_CHOICES = ( (0, 'ABC'), (1, 'DEF'), ) status = models.IntegerField(choices=STATUS_CHOICES) user = models.ForeignKey(Users) class Users(models.Model): phone_number = models.Charfield() and the serializer for ModelX is : class ModelXSerializer(serializers.ModelSerializer): phone_number = serializers.PrimaryKeyRelatedField( source='user', queryset=Users.objects.get(phone_number=phone_number)) class Meta: model = ModelX fields = ('phone_number',) In the request for creating the ModelX record, I get phone_number instead of the user_id. Now, I've to fire a filter query in order get the user instance. How do I do that, ie Users.objects.get(phone_number=phone_number) Also, when creating a record, the status field will always be 0. The client wont post the status parameter in the body. Its the internal logic. Is there a way in serializers that can set the status field to 0 automatically. Please dont recommend to set this field as default=0 in models. There's some logic behind this. This is just a shorter version of the problem statement. -
Random query is hitting PostgreSQL RDS instance
We have a django application hosted on AWS Elastic Beanstalk, which is using PostgreSQL RDS as a database. Since yesterday, we found that our RDS storage shows full-storage message. When we checked the logs are filling up and taking most of the space. The logs shows some random query is hitting the DB and causing error. 2017-10-30 06:59:59 UTC:172.31.0.218(48038):MyPostgreSQLDB@ebdb:[16817]:STATEMENT: INSERT INTO "auth_user" ("password", "last_login", "is_superuser", "username", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") VALUES ('pbkdf2_sha256$30000$L21goli52Bdt$CrFNDOGuwszHC3wkKvoVee1O8ey/V/NdMt9CaG53mCk=', NULL, false, 'dk12345678910111213141516171819202122232425', 'd', 'K', '', false, true, '2017-10-30T06:59:59.550627+00:00'::timestamptz) RETURNING "auth_user"."id" 2017-10-30 07:00:00 UTC:172.31.6.238(47206):MyPostgreSQLDB@ebdb:[22437]:ERROR: value too long for type character varying(150) 2017-10-30 07:00:00 UTC:172.31.6.238(47206):MyPostgreSQLDB@ebdb:[22437]:STATEMENT: INSERT INTO "auth_user" ("password", "last_login", "is_superuser", "username", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") VALUES ('pbkdf2_sha256$30000$rtHpPn996XzO$H2RS/H5RYHC12MxjnRIRK1St21VQS8/6Bd/Hnc3H0Jc=', NULL, false, 'deepak kumar k12345678910111213141516171819202122232425262728293031', 'Deepak Kumar ', 'k', '', false, true, '2017-10-30T06:59:58.751020+00:00'::timestamptz) RETURNING "auth_user"."id" 2017-10-30 07:00:00 UTC:172.31.26.180(52740):MyPostgreSQLDB@ebdb:[23882]:ERROR: value too long for type character varying(150) 2017-10-30 07:00:00 UTC:172.31.26.180(52740):MyPostgreSQLDB@ebdb:[23882]:STATEMENT: INSERT INTO "auth_user" ("password", "last_login", "is_superuser", "username", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") VALUES ('pbkdf2_sha256$30000$Ve4JkxutDfyC$lB9A+bzEvQSJYamlhXscU/cWfDHtMSHaMU45kKcyxsM=', NULL, false, 'ashokkumar1234567891011121314151617181920212223242526272829303132333435', 'ASHOK', 'Kumar', '', false, true, '2017-10-30T07:00:00.208427+00:00'::timestamptz) RETURNING "auth_user"."id" 2017-10-30 07:00:00 UTC:172.31.26.180(52938):MyPostgreSQLDB@ebdb:[26159]:ERROR: value too long for type character varying(150) We are not able to trace who is hitting this random query? How can we locate the culprit application or who is trying … -
Django Reset API not working on Docker
I am new to Docker, before docker I work on heroku, and these Django Rest APIs run perfectly on local server and heroku, but when i deploy these APIs on docker they sending me 400 Bad Request error, I don't know what the issue is, can somebody give me a hint what went wrong on docker. -
How to stop page reloading for components using react-router-dom with django
I'm trying to implement react-router-dom in a site build using react, redux and django as back end. My Problem is when we click on links created by react-router-dom, It loads right component but reloads the whole page due to which the redux state is lost. I don't want to serve all my requests to server, requests should be handled by react-router-dom without page reload. So my django urls.py looks like from django.conf.urls import include, url from django.contrib import admin from django.views.generic import TemplateView from django.conf import settings from food import views urlpatterns = [ url(r'^admin/', admin.site.urls), # url(r'^api/', include('hodapp.urls')), url(r'^api/items/', views.ItemList.as_view()), url(r'^api/categories/', views.CategoryList.as_view()), url(r'^', TemplateView.as_view(template_name='index.html')), ] Every request other than admin and api will serve index.html which looks like. {% load render_bundle from webpack_loader %} <!DOCTYPE html> <html lang="en"> <head> <!-- Meta --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> {% load static %} <!-- CSS Theme --> <link id="theme" rel="stylesheet" href="{% static '/css/themes/theme-beige.min.css' %}" /> </head> <body> <div id="container"></div> {% render_bundle 'main' %} </body> </html> Webpack serves index.jsx which looks like: import React from 'react'; import { render } from 'react-dom'; import App from './components/App'; import { BrowserRouter as Router} from 'react-router-dom'; const BrowserApp = () … -
How to handle exceptions in a Django database setting?
I have a Django application which gives the operational error: django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '172.16.1.38' (111)") When I am giving the wrong port number or IP address in database configuration of setting.py file. For example: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': "movement", 'HOST': "172.16.1.38", 'PORT': 3306, 'USER': "adc", 'PASSWORD': "abcde", } } above is the correct configuration of the database access but if I mess with any of the value from PORT, HOST or USER, I am getting the operation error. So, I wanted to know, is there any way to show a message instead of this error? or how can I handle this exception? -
python - read file add 1 to the data and write in file using data frame
It is my input file. comma separated values. It should read the file, convert that into panda dataframe. If any of the values in a row is 1, then all other columns in the same row should be 1. Input file(filter.txt) col1 2 3 4 5 6 abc, 0 0, 0, 0, 0 def, 0, 0, 1, , abc, 0, 1, , , def, 0, 0, 0, 1, xyz, , , , , Expected output step 2 abc, 0 0, 0, 0, 0 def, 0, 0, 1, 1, 1 abc, 0, 1, 1, 1, 1 def, 0, 0, 0, 1, 1 xyz, 1, 1, 1, 1, 1 After that it should group by column 0 and sum the values. So, far my code is, import pandas as pd data = pd.read_csv('Desktop/filter.txt', sep=",", header=None) my_df = pd.DataFrame(data) #what logic i should apply here? summary = my_df.groupby([0]).sum() print summary Expected output step 2 abc, 0, 1, 1, 1, 1 def, 0, 0, 1, 2, 2 xyz, 1, 1, 1, 1, 1 Any help would be appreciated. Thanks. -
Django Rest Framework JWT - Custom Payload with Extend User
I have a Extended User with sample serializers (Profile is Extend User, not Abstract User) { "id": 3, "url": "http://localhost:8000/api/v1/users/demo/", "username": "demo", "first_name": "First", "last_name": "Demo", "profile": { "gender": null, "location": "Sa Pa", "date_of_birth": null, "job_title": null, "phone_number": null, "fax_number": "", "website": "", "intro": "", "bio": "", "interested_in": null, "languages": null, "quotes": null, "nickname": null } } How can I custom payload with all above fields and get it with axios? Now it just get payload: authUser:Object email:"test@gmail.com" exp:1509183691 user_id:1 username:"First Demo" token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImxlY29uZ3RvYW4iLCJ1c2VyX2lkIjoxLCJlbWFpbCI6ImRyYWZ0bGlnb25ncXVhbjdAZ21haWwuY29tIiwiZXhwIjoxNTA5MTgzNjkxfQ.KSEp-7g-SGDbqfspedNwkT1rABFi0UQ45yKDJDTX2zA" I followed with this link: #145 but isn't work Please help me! -
Byte Order Mark (ÿþ) preventing deployment to Heroku
I've been trying to learn Django, and I've been running into some trouble deploying to Heroku. When I try running git push heroku master, I get the following output PS E:\My\Git\Directory> git push heroku master Counting objects: 31, done. Delta compression using up to 8 threads. Compressing objects: 100% (26/26), done. Writing objects: 100% (31/31), 6.71 KiB | 0 bytes/s, done. Total 31 (delta 2), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Python app detected remote: ! The latest version of Python 3 is python-3.6.2 (you are using ÿþpython-3.6.2, which is unsupported). remote: ! We recommend upgrading by specifying the latest version (python-3.6.2). remote: Learn More: https://devcenter.heroku.com/articles/python- runtimes remote: -----> Installing ÿþpython-3.6.2 remote: ! Requested runtime (ÿþpython-3.6.2) is not available for this stack (heroku-16). remote: ! Aborting. More info: https://devcenter.heroku.com/articles/python-support remote: ! Push rejected, failed to compile Python app. remote: remote: ! Push failed remote: Verifying deploy... remote: remote: ! Push rejected to intense-river-64521. remote: To https://git.heroku.com/intense-river-64521.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/intense-river- 64521.git' Running the site on localhost has no problems. My runtime.txt only contains: python-3.5.2 I assumed the issue …