Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Recommended C-panel for hosting django web application
So my goal is to run django app(WSGI) on C-panel, my traffic would be 100-200 persons max per day ,I have found a website https://ifastnet.com but I'm not quite sure, what would you recommend? -
Unable to convert bytes stream into image django views
this is a new question as i didn't received any answer to my old one, i have made some tests after some recommendations I am actually struggling on converting a bytes received from LDAP for the thumbnail picture of the user and saving it into the profile model, This is the code that i have actually xuser = CustomUser.objects.filter(id=request.user.id).first() user = xuser.last_name def save_avatar(user, thumbnail): profile=UserProfile.objects.create(user=user) buffer = io.BytesIO() buffer.write(thumbnail) image_file = InMemoryUploadedFile(buffer, None, 'test.png', 'image/png', buffer.getbuffer().nbytes, None) profile.image.save('image', image_file) try: thumbnail = result[0][1]['thumbnailPhoto'][0] save_avatar(user, thumbnail) print('* %s: %d' % (xuser.username, len(thumbnail))) except Exception as e: print(' %s: error: %s' % (xuser.username, str(e))) With this am able to store the image but i have as name only 'image' without the extension i don't know what i have to do next, and if this code should give me something back, if this will help this the format that i have after retrieving the value of the thumbnail attribute: b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00H\x00H\x00\x00\xff\xdb\x00C\x00\x08\x06\x06\x07\x06\x05\x08\x07\x07\x07\t\t\x08\n\x0c\x14\r\x0c\x0b\x0b\x0c\x19\x12\x13\x0f\x14\x1d\x1a\x1f\x1e\x1d\x1a\x1c\x1c $.\' ",#\x1c\x1c(7),01444\x1f\'9=82<.342\xff\xdb\x00C\x01\t\t\t\x0c\x0b\x0c\x18\r\r\x182!\x1c!22222222222222222222222222222222222222222222222222\xff\xc0\x00\x11\x08\x00`\x00`\x03\x01!\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1c\x00\x00\x01\x04\x03\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x01\x03\x06\x07\x00\x04\x05\x08\xff\xc4\x00:\x10\x00\x01\x03\x03\x02\x03\x05\x06\x04\x03\t\x00\x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\x11\x06!\x121a\x07\x14AQq\x13"2\x81\xa1\xc1#BR\x91\x15$r5C\x82\xa2\xb1\xb2\xc2\xd1\xe1\xff\xc4\x00\x19\x01\x00\x02\x03\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x05\x04\xff\xc4\x00\x1d\x11\x01\x01\x01\x00\x03\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x11!\x12"1\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xb3\x02 \x10\x04\x02\\&E\xc2\xcc 3\t0\x80B\x85\x00$ !\x00\xe0\x08\xc0H\xca\x02,&LP\xbb\xd6\xbem1\x11Y-\xf2\\\xe4$\x83)\xcb"\x1e\x87\x9b\xbdF\xddTu\xb9\x99\xedO\x18\xbb\xbeCt\x1a\xf2\xae9\xf8/\xd6gQ\xc3\x8c\x9a\x9aw\x99X\xde\xaen2\x07Q\x9c)\xa43ES\x04s\xc1#%\x86F\x871\xec9\x0e\x07\x91\x05,o;\x9e\xc1\xbe=b\xf9DP\xa9\xa0\x12\x84\x84\x19\xc0\x11\x00\x90\x10\x08\xb0\x99!z\xf6\xe9$r[\xec\xac\xda*\xde9*\x1c\x0e\t\x8d\x98\xf7=\x1cy\xf4\x18\xf1Z\xf6\xc0\xc7G\x82\xdc\x11\xcb\x03\x92\xcf\xed_w#C\xa9\x9f1i\xcb\x88\x02"Z\xd3\x9f4\xc6\x85\xac}%\xe2\xba\xccO\xf2\xcfgz\xa6g\x83\x0eq#GL\x90q\xea\x8e\xad\xf3~\x1fk>\xe3\xd4\xf0\xa1!h3\x82P\x90\x80p\x04a \x12\xa6\x15\xce\xb9"MM\x03\xa2s^\xf8h\xdc\xc2?C\x8b\xb3\xbf\xa8!E(\xefwjz\xa6\x96T\xcb;G\xc6\xce\xee\x18\xdf\x91\xe6\xb8y|\xbb\xad\x0e\x19\xa9\x88\xdd\xd4\xb5u\xf3U63%S kZ\xe3\xdd\xcf\tv|\x13\xbab\xa9\xb6\xfb\xc5\xbe\xb2\xa9\xf3\xfb6:H\xcb\xa4\x19v\x1e\xdc\x0c\xf9\x8c\xe1G\x8f^yj\\\x98\xba\xf6E\xb8\xed\x8a\x12\xb4\x19\xa1(J\x01\xc0\x8c$\n\x11&\x15\xe6\xb6\x87\xb8\xdec\xadtn\xf6U\x1c,/\x03`q\x8d\xff\x00a\xfb\xae}EM\x0cT.\x99\xac\x19\xc7\xbcZ\x06@\xf1Y\xdc\xd9\xb3u\xab\xc1\xb9s\x03O|\xb6\\\xebOv\xcc\x91\xb66\x87\xf1\x01\x80G$\x0c?\xc4\xf5\x1d%\r$>\xd7$\xbd\xe0~V\x0ed\xf4\xdc(\xe7\x17\xf5\xf9K|\x92g\xf5\xea\xd4w2\x9b+M\x92D\x88\x07B \x91\t*a\x1f\xd6\x94o\xaf\xd2W8"\x19\x90Bd`\xf3,!\xdfe@\xc5^+e\x8e9\x9f#\xe3\x03\xe0\xe2\xd8\x95W$\xf7\xea\xde=y\xf2\xb7k\xe9{\xac\x1e\xdd\xd1\x1ag\xe31\xba9\x83\xb8\xbdp\x06\x02\x96\xf6E\xc5[~\xb9W8\x93\xeci\xc4c>ov\x7f\xe2\xa3\xc7\xf7\xea\xcek?\xc8\xb8\nl\xab\xdc\xe4H\x80t"\t\x10\x92\x8d\xf6\x1c\xd3\x0e\x05\xefT\xd8\xed%\xf4\xf5u\xf0\xba\xa4\x8e\x11I\x1b\x83\xa5q;c\x84r\xf9\xe1P5\xf6yb\xact\x94G\x849\xc7\r\'\xc1S\xc9\xb9\x9dH\xbb\x8f\x17Y\xb5\xaa\xfbm\xce@\x1b,\x847\xc4\x13\x95:\xd1Z\x82\xd7\xa1\xdb#n"q\x1dY\x03\xda\xc6\xce>\x12\xdf1\xcf\x1b\xf8(\xe7r\xeaH\x95\xe3\xb36\xd5\xa7j\xd4\xd6K\xeb\x01\xb6\xdc\xe9\xaa\x0f\xe8\x0f\xc3\xc7\xabN\x0f\xd1t\x9d\xb1\xc1\xd9t(\x0eV \x1d\x08\xc2\t\x02\xd5]\xa9\xda\xec2IGo`\xb8\xd70\x96\xbb\x85\xd8\x8a3\xe4]\xe2z\x0f\xddU\x17\xae\xd15=\xef\x89\x92\xdc\x9fO\x03\xbf\xb9\xa4\xfc&\xe3\xa9\x1b\x9f\x99@ql\x9f\xdb\xb4\x84\x9d\xcc\x99\xc9\xf18*|\xeaa#\x0b\xf83\x83\xbe<\x17\x17g\xe6\xa3\xbb\xab\xf76\x19d1=\xc4a\xc5\xcd\xe6\n\xe3\xea\xa8\x1b\xfc-\xaf\xd8pH\x00\xeb\x95_\x15\xbf\xb8\xb3\x96I\x8a\x86\x82A\x0e\x04\x87\x0eDs\nW\xa7\xfbD\xd4\x16\x17\xb1\x8d\xabu](\xe7OTK\xc6:\x1em\xf9\x1f\x92\xd1f\xae\x9d+\xac\xed\xba\xb2\x95\xce\xa5&\x1a\xa8\xc6f\xa5\x90\xfb\xcc\xea\x0f\xe6o_\xdf\nB\\\x83l\x05\x06\xedCT\xbe\xc3`m\x15$\xa5\x95\xd5\xf9`sN\x0cq\x8f\x89\xc3\xa9\xce\x07\xa9A<\xfe]\xb2L\xa6\x05\x1c\x8e\x8aVH\xc3\x87\xb0\x87\x0fP\xac\xca*\xbfmO\x14\xf1`\xb6F\x02A\xe4B\xe3\xedO\xf2\xba\xba\xda\xf2\xd3\xees\x8c\x8e-\xcbx\x86\t\xc6\x14OX\xd4p\xb6\x9a\x90\x1f\x13#\x87\xd0}\xd5\\\x13\xdeH\xbb\x9f_\xc5D\x8aL\xe1h3\xdd\x0b\x1d\xea\xa6\xc1z\xa6\xb9R;\xf1!vKs\xb3\xdb\xf9\x9az\x11\xb2\xf4\xdd\x05|\x17;u=u+\xb8\xa0\xa8\x8cH\xc3\xd0\xfd\xfc\x10q\xd2\x05y\xdb\xb4\xdb\xa9\xb9\xeb\x8a\xe0\x1f\x98\xa9qM\x1f\x90\xe1\x1b\xff\x00\x98\x94\x12\x1aJ \x80U/\xd2u\xfct\xaf\xa4q\xf7\xa2<M\xfe\x93\xff\x00G\xfdU=\x89\xee\x17p_6\x91\xf1\x90@U\xe5\xfa\xaf\xbd\xdd\xe7~r\xd6\x1e\x00}?\xf7+\x9f\xad?\xabWv/\xf3\xe3\x96P\xb8\xec\xbb\x9c`\xe2\xdf*\xe9\xecr\xf6\xea\x9bMe\x9eW\x12\xeaG\tb\xcf\xe8q\xdc|\x9d\xbf\xf8\x928\xb5f\x98S\xc1$\xee\xf8bay\xf4\x03?e\xe4\xea\xaa\x87\xd5\xd4\xcbS!\xcb\xe6{\xa4q\xea\xe3\x9f\xbad\xd6;\x10\x8c\x14\x02\xe7e\xb9j\xac\xee7(f\xce\x1a\x1d\x87\x7fI\xe6\x96\xe7\xb9\xb0\xf3|\xb2\xa6\xd7*\xf6\xd1\xdb$\xa8\x0e\x04\xb5\x98oW\x1eJ\xba.$\xe4\x9c\x9f5\xcf\xd6\x9eKW\xf6/\xd9\x02J\x07\xbbb\xba\x1c\xe1iS\x8e\xca\xae]\xc7[S\xc2\xe3\x86VF\xf8\x0f\xae8\x9b\xf5o\xd5\x06\xbf\xae\xbb\xd9\xab\xc7\x9d4\xbf\xec+\xca \xfb\xad\xf4\t\x90\x1epr\x94 \x0b)\t@oT\xdd%\xaa\xb5\xc1L\xec\xfe\x13\x8f\x11\xf3\x1e\x0b\x9e\xa3\x9c\xfeg\x89k_\xab\xe8JnC\xb2h\xb1\xab\xa1e\xac4\x17\xcb}Xw\x0f\xb0\xa9\x8eL\xf9\x00\xe1\x9f\xa2\r\xff\xd9' i really need some help with this if anyone have a suggestion or something from what i can start i will be really grateful -
why my "def __str__(self)" function isn't working in django
from django.db import models # Create your models here. class Article(models.Model): title = models.CharField(max_length=100) slug = models.SlugField() body = models.TextField() date = models.DateTimeField(auto_now_add=True) ***def __str__(self): return self.title***[(InteractiveConsole)[1] when i enter Article.objects.all() this line, after that it should show titles i have in my database. But why it's just showing ? although I have written def __str__(self): properly. -
how to configure redirect in DeleteView
when i try to delete some comment it first take me to the comment_delete_confirm.html, then redirect to the page what linked in success_url = '/blog/'. Problem become when i change success_url to something like 'post-detail' (becose i want after comment_delete_confirm return to the post), it cannot find this page, becose in the brauser url it looks like that: '127.0.0.1:8000/blog/post/18/comment_delete/post-detail' this is my views.py and urls.py files: class CommentDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView): model = Comment success_url = 'post-detail' # only the author can delete his post # if not author try to delete post it gives 403 forbidden def test_func(self): comment = self.get_object() if self.request.user == comment.user: return True return False urlpatterns = [ path('', PostListView.as_view(), name='blog-home'), path('user/<str:username>', UserPostListView.as_view(), name='user-posts'), path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail'), path('post/new/', PostCreateView.as_view(), name='post-create'), path('post/<int:pk>/update/', PostUpdateView.as_view(), name='post-update'), path('post/<int:pk>/delete/', PostDeleteView.as_view(), name='post-delete'), path('post/<int:pk>/comment/', add_comment, name='comment-create'), path('post/<int:pk>/comment_update/', comment_update, name='comment-update'), path('post/<int:pk>/comment_delete/', CommentDeleteView.as_view(), name='comment-delete') ] -
Nginx + Django serve static files to local location
I have a Django app and I want to set the path of static files, to a local path, for example: c:/static/test The Nginx settings for the location is something like: server { listen 80; server_name sitename or ip; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/blah/blah_blah; } location / { include proxy_params; proxy_pass http://unix:/run/gunicorn.sock; } } is it ok to replace root /home/blah/blah_blah; with c:/static/test? To make it clear, I have a website that I want to upload big files to a local server (local path in the user's PC). Thanks -
What is an equivalent Django's save function in Symfony?
What is an equivalent Python's save function in Symfony models?. Django def save(self, *args, **kwargs) self.slug_field = slugify(instance.username) What would it look in Symfony? -
Transpose data from model objects for django-datatables-view
I have data in the following (simplified) format: MetricData(models.Model) with following fields: id, metric, date, facility, value Now I want to create a table with the following format (execute the script to get the indented output table): <table style="width:100%"> <tr> <th>Date</th> <th>Facility 1</th> <th>Facility 2</th> <th>Facility 3</th> </tr> <tr> <td>03/2019</td> <td>1.0</td> <td>1.5</td> <td>2.5</td> </tr> <tr> <td>04/2019</td> <td>1.5</td> <td>1.5</td> <td>2.0</td> </tr> </table> As you can see, the number of facilities which is dynamic (new ones can be added to the database), are the column headers. For each facility there will be metric data in the database. All examples from django-datatables-view I find are basically using models directly and one model entry is converted to one table row. -
Django - Multiple dependent form
I have extended the Django User model creating a 1-to-1 dependency with the class Profile. There will be many profiles playing in the same Community. And a Profile can be playing in different Communities at the same time. I did this with a Many-to-Many field "members" in the Community Model. This is shown below. (I have reduced the irrelevant code) class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) # Extend Users Here class Community(models.Model): username = models.CharField(max_length=100) password = models.CharField(max_length=50) members = models.ManyToManyField(Profile, through='Membership') def get_members(self): return "\n".join([str(m) for m in self.members.all()]) class Membership(models.Model): community = models.ForeignKey(Community, on_delete=models.CASCADE) player = models.ForeignKey(Profile, on_delete=models.CASCADE) When a new profile is created I would like it to be inmediately associated with a Community. Therefore, in the user registration form I would like to ask him if he wants to join an existing community or create a new one. I believe I need something as "Multiple Form" but I would appreciate help in what exactly do I need and how I can look for information about it. Thanks! -
Import another javascript module in django admin custom javascript file
I have created a separate JavaScript file to wrap common Ajax code (jQuery) and import it in other JavaScript files. But it gives the error SyntaxError: import declarations may only appear at top level of a module. My code as follows. Two files are in the same directory. ajax_call.js function make_ajax_request(requestUrl, requestData, callback_function) { $.ajax({ type: 'GET', url: requestUrl, data: requestData, success: function(response) { try { var jData = JSON.parse(response); if (jData['status'] == 'success') { callback_function(jData); } else { console.log(jData['error']); } } catch (error) { console.log('Parse error in response.') } } }); } change.js import { make_ajax_request } from './ajax_call.js' var $ = django.jQuery; $(document).ready(function() { //code to call the function } admin.py class Media: js = ('admin/js/jquery.init.js', 'js/admin/ajax_call.js', 'js/admin/change.js',) -
Python django authenticate delete
I'm having some problems with the delete method on my project. When I run on postman link to delete the post, it's deleting it, so it works, but I want to make it only if user is_staff to delete this post. This is the code. from django.db import models from django.utils.text import Truncator from django.contrib.auth.models import User from threads.models import Thread class Post(models.Model): """ Model to represent the post in a thread """ content = models.TextField() thread = models.ForeignKey( Thread, on_delete=models.CASCADE, related_name='posts' ) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(null=True) creator = models.ForeignKey( User, on_delete=models.CASCADE, related_name='posts' ) class Meta: ordering = ['created_at'] def __str__(self): truncated_content = Truncator(self.content) return truncated_content.chars(30) -
python django django.shortcuts render is searching for html in wrong directory
For me django.shortcuts render is searching for html in wrong directory: C:\Users\benra\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\contrib\admin\templates\blog\home.html but it should be searching for it where the project is C:\Users\benra\django_project\blog\templates\blog how do I fix this? from django.shortcuts import render def home(request): return render(request, 'blog/home.html') def about(request): return render(request, 'blog/about.html') -
How can solve this : Django pyinstaller wont start app exe
i have install python v 3.4 and django 1.8 , pyinstaller 3.5, i try convert django app to app.exe for windows. pyinstaller --name=mysite mysite/manage.py All ok. ./dist/mysite/mysite.exe runserver localhost:8000 server start ok, but wont start app.exe window. any solution? -
Could anyone please write the code in django to get a csv file as an input from user and then displaying number of rows and columns in it [on hold]
Please help me with the contents of template,views, URL(outer and inner) file. I just want to create a simple web application in django where i get a user input in the form of a csv file(I also want to put a check so that the file should only be a .csv) and then simply displaying the number of rows and columns in that file to the user. Thank you in advance. -
Reward Points to Currency Conversion
I am currently building a Django app where a user gets a point referrals. And these points could be converted to "real" money which can later be used for "shopping" real items on specific stores BUT cannot be withdrawn as cash. My problem is the conversion part of the points. For example: the equivalent of 1 point is $30. I am really new to these kinds of applications and also new in using python so please bear with me. How should I approach this then? Should I store the $30 to a "wallet" in my database after it was converted? Or should I use a 3rd party to process the conversion and the payment of the users whenever they use the "money" to shop? I am open to any suggestions besides these things that I have in mind. And honestly, I barely have enough knowledge to execute these things, but I am currently studying it. Your inputs will help a lot. Thank you. -
Django Error: "You are trying to add a non-nullable field 'author' to entry without a default"
I was trying to make migrations after adding an author field in my models.py file but Django asked me this: You are trying to add a non-nullable field 'author' to entry without a default; we can't do that (the database needs something to populate existing rows). Please select a fix: 1) Provide a one-off default now (will be set on all existing rows with a null value for this column) 2) Quit, and let me add a default in models.py My Models.py File: from django.db import models from django.utils import timezone from django.urls import reverse from django.contrib.auth.models import User class Entry(models.Model): title = models.CharField(max_length=50, default=timezone.now) date = models.DateTimeField(default=timezone.now) content = models.TextField() author = models.ForeignKey(User, on_delete=models.CASCADE) def get_absolute_url(self): return reverse('diary:index') def __str__(self): return self.title I wanted to add the user who's currently active as the author, so I did this on my views.py file: class EntryCreate(CreateView): model = Entry fields = ['title', 'content'] def form_valid(self, form): form.instance.author = self.request.author return super().form_valid(form) What Should I Do To Avoid This? Thanks In Advance! -
Trouble getting the localhost using webdriver selenium 3.141.0 for firefox 69.0.1
I'm trying to test my django application using selenium and Mozilla Firefox 69.0.1 on Ubuntu 16.04, but I get an error message: "selenium.common.exceptions.WebDriverException: Message: Reached error page". It seems like Firefox cannot establish a connection to the server 127.0.0.1:8000. I built a virtual environment where everything is installed (python 3.5.2, django 2.2.6, selenium 3.141.0, urllib3 1.25.6, etc.). I downloaded geckodriver 0.25.0, which is installed in /usr/local/bin/. I ran the following code: from selenium import webdriver browser = webdriver.Firefox() browser.implicitly_wait(10) browser.get("http://127.0.0.1:8000") browser.quit() I also tried: from selenium import webdriver firefox_capabilities = DesiredCapabilities.FIREFOX firefox_capabilities["marionette"] = True browser = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver", capabilities=firefox_capabilities) browser.implicitly_wait(10) browser.get("http://127.0.0.1:8000") browser.quit() But it did not work. The first piece of code works when I use "https://www.python.org/" instead. I suppose there is a problem with the local host, but I cannot figure out what is wrong though. -
Ouput ping status on django template
I have a model that contains domain names which I need to ping. I was able to create the view but I couldn't figure out how to output it on the template. def pingDomain(request, page): domain = Table.objects.filter(page) try: subprocess.check_call(['ping', '-c', '1', "domain"]) except subprocess.CalledProcessError: host_online = False else: host_online = True context = { 'online': host_online } return render(request, 'home.html') the model class Table(models.Model): page = models.URLField(verbose_name=None) and this is how I call it on the template {{t.page.status.url}} Can anyone guide me? -
Getting error response in ajax from my Django view
i am getting the error in ajax from my view in Django and I cannot figure out why : // AJAX GET $(document).ready(function(){ // AJAX GET $('#btnx').click(function(){ console.log('start'); $.ajax({ type:"GET", url:"profile_bit", dataType:"json", data: {'counter': 'counter'}, success: function(data) { console.log('ok')}, error: function(data){ console.log('why?') // << I keep getting this }}) }) }); // django view , my url is all good too def profile_bit(request): if request.is_ajax(): data ={ 'key': 'value', } return HttpResponse(json.dumps(data), content_type='application/json') else: return Http404 I would like to get a success response so I could just continue to work with my DB. Thx so much -
OperationalError at /add-to-cart/test-product-4/ table core_order has no column named shipping_address_id
after i changed class BillingAddress To class Address. and tried these stages Deleted all the migration records from your app's migration directory. Also Deleted the db.sqlite3 file. And Then, I did following commands python manage.py makemigrations core python manage.py migrate After migrated, Instead of showing data inserted ,it is shown No migrations to apply. in Terminal PS C:\Users\Dell\project5> python manage.py makemigrations core Migrations for 'core': core\migrations\0001_initial.py - Create model Address - Create model Coupon - Create model Item - Create model Order - Create model Refund - Create model Payment - Create model OrderItem - Add field items to order - Add field payment to order - Add field shipping_address to order - Add field user to order PS C:\Users\Dell\project5> python manage.py migrate Operations to perform: Apply all migrations: account, admin, auth, contenttypes, core, sessions, sites, socialaccount Running migrations: No migrations to apply. PS C:\Users\Dell\project5> when i click add to cart button, it shown error as OperationalError at /add-to-cart/test-product-4/ table core_order has no column named shipping_address_id -
request.FILES is empty
I have a form with an <input type="file"> for selecting images to upload, and once upload button is clicked, a POST XMLHttpRequest is sent which calls the upload_view that should save the images on the server. However, my request.FILES is empty for some reason. When I console.log(document.getElementById('fileToUpload').files I can see the files there. And my request.POST looks like this: <QueryDict: {'fileToUpload': ['[object FileList]'], 'csrfmiddlewaretoken': ['bOjUFzTnMVbHOWOQURj2egJuRizsVJIBMSfQra4yuz7MX3DOEaRPHbMVnY8xyIsU']}> My view: def upload_view(request): key = f'{request.user}-{datetime.datetime.now().strftime("%Y%m%d%H%M%S")}' for file in request.FILES.getlist('fileToUpload'): TemporaryImage.objects.create(image=file, key=key) return HttpResponse('complete') My JS: function uploadFile() { var fd = new FormData(); fd.append("fileToUpload", document.getElementById('fileToUpload').files); var value = []; document.getElementsByName('csrfmiddlewaretoken').forEach(function(x) { value.push(x.value); }) fd.append('csrfmiddlewaretoken', value[0]); var xhr = new XMLHttpRequest(); xhr.open("POST", Urls['upload-view']()); xhr.send(fd); } My form: <form id="form1" enctype="multipart/form-data" method="post"> {% csrf_token %} <label for="fileToUpload">Select a File to Upload</label> <input type="file" multiple="multiple" name="fileToUpload" id="fileToUpload"> <input type="button" onclick="uploadFile()" value="Upload"> </form> -
Custom 500 error getting blank page sometimes
When I try to test the custom 500 error page. If the test works, the I get a blank page with nothing on it ("Internal Server Error") in my error logs. If an error occurs, I get custom error page. In views: def handler500(request): response = render_to_response("errors/500.html") response.status_code = 500 return response def my_test_500_view(request): # Return an "Internal Server Error" 500 response code. return HttpResponse(status=500) In Urls.py: my path is : path('test500/', views.my_test_500_view, name='test500') Also: handler500 = 'myapp.views.handler500' If I actually create an error like by removing the import line for the HttpResponse from the my_test_500_view above, the custom 500 error page actually loads and I get this error on the server, i.e. the actual error. NameError: name 'HttpResponse' is not defined What's wrong with my test that it returns a blank page. Is my 500 page actually working? I think it's not working right, since I got a email warning from google search about failure of 500 error page and I often get this error: TypeError: view must be a callable or a list/tuple in the case of include(). Please help, what's going on. -
django Sum values for loop in template
I have this template that is a search engine. I need all the searched items to be added, but as i did it sums up all the database items. and I need it to show only the sum of the searched items. sum all loop items {{images.price | mul:images.pictures}} views.py def search(request): sales_list = Images.objects.all() sales_filter = ImagesFilter(request.GET, queryset=sales_list) places_count = Images.objects.all().annotate(total=Sum('pictures')) return render(request, 'paneladmin/sales_list.html', {'filter': sales_filter, 'places_count': places_count}) filter.py class ImagesFilter(django_filters.FilterSet): checkin = django_filters.NumberFilter(widget=DatePickerInput(format='%d'),field_name='checkin', lookup_expr='day' ) checkin1 = django_filters.NumberFilter(widget=DatePickerInput(format='%m'),field_name='checkin', lookup_expr='month' ) checkin2 = django_filters.NumberFilter(widget=DatePickerInput(format='%Y'),field_name='checkin', lookup_expr='year' ) # usando o name__photographers eu estou dizendo que quero busca o name da tabela photographes, desse modo terei um boxlistt em meu template name__photographers = django_filters.CharFilter(lookup_expr='icontains', field_name='name') class Meta: model = Images fields = ['name', 'checkin'] sales_list.html {% load mathfilters %} {% for images in filter.qs %} {{images.price | mul:images.pictures}} {{ places_count }} {% endfor %} -
How to use Python Keyring from Django without user interaction?
I need to store some third party server passwords in Django, in views.py to be more specific. Those are used for Paramiko SFTP (machine-to-machine communication) and it's not possible to use keys instead of passwords. For sure I don't like to write those passwords directly to source code. I have figured out that Python Keyring would be good way to store passwords and following short code works ok: import keyring try: keyring.get_keyring() keyring.set_password("system", "user", "passWORD") pword = keyring.get_password("system", "user") print pword except Exception as e: print e I moved the code to Django (views.py): from django.http import HttpResponse import keyring def index(request): try: keyring.get_keyring() keyring.set_password("system", "user", "passWORD") pword = keyring.get_password("system", "user") return HttpResponse(pword) except Exception as e: return HttpResponse(e) Then I asked Django to run built-in development server by typing: sudo python manage.py runserver Finally I browsed to correct localhost url. Result: browser was showing dialog requesting me to create (on first try) and then open (on next tries after I have created it) kdewallet. Is it possible to use Keyring from Django without need for user interaction (= without those dialogs)? -
How to remove a field from modelform model instance?
I have a question related this one: How to handle the validation of the model form when the model has a clean method if the model form excluded some fields? This is my model: class StudentIelts(Model): SCORE_CHOICES = [(float(i/2), float(i/2)) for i in range(0, 19)] IELTS_TYPE_CHOICES = [('General', 'General'), ('Academic', 'Academic'), ] student = OneToOneField(Student, on_delete=CASCADE) has_ielts = BooleanField(default=False, ) ielts_listening = FloatField(choices=SCORE_CHOICES, null=True, blank=True, ) ielts_reading = FloatField(choices=SCORE_CHOICES, null=True, blank=True, ) ielts_writing = FloatField(choices=SCORE_CHOICES, null=True, blank=True, ) ielts_speaking = FloatField(choices=SCORE_CHOICES, null=True, blank=True, ) ielts_overall = FloatField(choices=SCORE_CHOICES, null=True, blank=True, ) ielts_exam_type = CharField(max_length=10, null=True, blank=True, choices=IELTS_TYPE_CHOICES, ) ielts_exam_date = DateField(null=True, blank=True, ) ielts_file = FileField(upload_to=student_directory_path, null=True, blank=True, ) student_ielts_non_empty_fields = \ { 'ielts_listening': 'please enter your listening score', 'ielts_reading': 'please enter your reading score', 'ielts_writing': 'please enter your writing score', 'ielts_speaking': 'please enter your speaking score', 'ielts_overall': 'please enter your overall score', 'ielts_exam_type': 'please enter your exam type', 'ielts_exam_date': 'please specify your exam date', } def clean(self): errors = {} if self.has_ielts: for field_name, field_error in self.student_ielts_non_empty_fields.items(): if getattr(self, field_name) is None: errors[field_name] = field_error if errors: raise ValidationError(errors) class StudentIeltsFilterForm(ModelForm): class Meta: model = StudentIelts fields = ['has_ielts', 'ielts_listening', 'ielts_reading', 'ielts_writing', 'ielts_speaking', 'ielts_overall', 'ielts_exam_type', ] def __init__(self, *args, **kwargs): … -
objects.create(...) does not create the objects
For some reason my objects aren't being created: def upload_view(request): key = f'{request.user}-{datetime.datetime.now().strftime("%Y%m%d%H%M%S")}' for file in request.FILES.getlist('fileToUpload'): TemporaryImage.objects.create(image=file, key=key) return HttpResponse('complete') TemporaryImage.objects.all() returns an empty QuerySet, and when I inspect the database, nothing is there, yet I can see the HttpResponse being returned successfully. I don't see any errors. The same is true when I do: tmp_img = TemporaryImage(...) tmp_img.save() What could be the cause?