Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
React Django state lost in continuous refresh of page
I'm developing a web app with Django and React, I build the structure of the page on a react component and it looks like it works. I have a to do list component, I have a state that holds title and items of the to do list. then when the list is completed I wanted to post the to do list to the database. The issue that I'm facing is the following: - Load http://localhost:8000/ - click on add item - react renders the new empty field for the new item. it last a second, the page refreshes, the link becomes http://localhost:8000/?title=&dateCreation=&toDoItem=&when=&note=&toDoItem=&when=&note= and the page loses the state and everything is like at the beginning of the state state = { toDoList:{ title:"", dateCreation:"", toDoItems:[ {itemName:"",when: "", note:""}, ] } } addItemHandler = () => { const toDoList = {...this.state.toDoList} const toDoItems = [...this.state.toDoList.toDoItems] toDoItems.push({itemName:"",when: "", note:""}) toDoList.toDoItems = toDoItems return this.setState({toDoList: toDoList}) } -
Django - Get live output of subprocess command
I'm currently developping a small WebApp in Django and I need to run a shell command at some point. The command is gonna actually take a lot of time to run (6-10 minutes) so I would like to get live stdout from the command in my Django View ... (In order to live track the command) I'm not a beginner in python so I now how to run the command and get live output with subprocess but I total new with Django so I have no clues of how to pass the live output to the views ... I was not able to find an answer that fit my needs on the net ... Thanks for helping me and sorry for the english ... -
Open New View in Bootstrap Modal in Django
My situation is that I have several modals (4 to be exact) which should be accessible in every single view in my app. I will use just one as an example. Let's take a look at how I am displaying this on the home screen view: base.html ...abbreviated... <a data-toggle="modal" href="#exampleModal">Shipment</buton> <!-- Modal --> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Create Shipment</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <form method="POST"> {% csrf_token %} <div class="modal-body"> {{shipmentForm|crispy}} </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="submit" name="shipment" class="btn btn-primary">Save changes</button> </form> </div> </div> </div> </div> And here is the view which passes shipmentForm to that template views.py def HomeView(request): if request.method == 'POST': shipment_form = CreateShipmentForm(request.POST) if shipment_form.is_valid(): new_shipment = shipment_form.save()the user to the success page return redirect('ShipmentListView') shipmentForm = CreateShipmentForm() context = { 'shipmentForm': shipmentForm, } return render(request, 'home.html', context) This works perfectly fine, but the problem is, I would need to include this code from HomeView in every single view in my app. That would be a lot of repeating myself. I have included the html for the modal in my base.html so that … -
Adding more fields to send_mail
I see people using the send_mail function like this: send_mail(subject, message, from_email, ['admin@example.com']) My form have more fields such as 'name' and 'phone_number'. How can I pass those extra fields to the send_mail function? forms.py class ContactForm(forms.Form): name = forms.CharField(required=True) phone_number = forms.CharField(required=True) from_email = forms.EmailField(required=True) subject = forms.CharField(required=True) message = forms.CharField(widget=forms.Textarea, required=True) views.py def contactView(request): if request.method == 'GET': form = ContactForm() else: form = ContactForm(request.POST) if form.is_valid(): subject = form.cleaned_data['subject'] from_email = form.cleaned_data['from_email'] message = form.cleaned_data['message'] try: send_mail(subject, message, from_email, ['admin@example.com']) except BadHeaderError: return HttpResponse('Invalid header found.') return redirect('success') return render(request, "email.html", {'form': form}) -
Django: Redirecting to previous, specific page
Good evening, inside my Django-Table there is a button that redirects to another page to edit the entry inside a row. So - let's say - in my url: ".../coworker/3/" I press a random button inside my table and it leads me to the next side (url: "../coworker/3/...something.../"). My Question is: is it possible to press another button to abort and redirect to the previous page? Right now I'm having trouble with the inside my url! Error message: "NoReverseMatch at ..." The button that leads me from one page to another (the one that's working): <td>{{ item.id }}</td> <td>{{ item.customer }}</td> <td><a class="btn btn-sm btn-warning" href="{% url '...something...' item.id %}">Edit</a></td> Thanks and a good night to all of you! -
incorrect email recieved from contact form django
HI i've got small issue with my contact form it wokes it sends emails but for some reason those emails are not correct i've got field in the form that asks uder email and no matter what i type there the mail comes like from me .. the email i type in the form is in the subject.. i'm not sure if this is correct view def contactView(request): if request.method == 'GET': form = ContactForm() else: form = ContactForm(request.POST) if form.is_valid(): from_email = form.cleaned_data['from_email'] subject = form.cleaned_data['subject'] message = form.cleaned_data['message'] try: send_mail([from_email], subject, message, [EMAIL_HOST_USER]) except BadHeaderError: return HttpResponse('Invalid header found.') return redirect('success') return render(request, "blog/contact.html", {'form': form}) def successView(request): return HttpResponse('Success! Thank you for your message.') form class ContactForm(forms.Form): from_email = forms.EmailField(required=True) subject = forms.CharField(required=True) message = forms.CharField(widget=forms.Textarea, required=True) -
403 error with Django-Rest-Framework and Django-Oauth-Toolkit in client_credentials mode
I am trying to us the Django-Oauth-Toolkit authentication with the client_credentials mode, and I can: create successfully create my client_id and client_secret register my token But after, any api call using this token yields a 403 error with the message: { "detail": "You do not have permission to perform this action." } My settings.py is: INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "oauth2_provider", "rest_framework", "drf_yasg", "users", ] MIDDLEWARE = [ "oauth2_provider.middleware.OAuth2TokenMiddleware", "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", ] AUTH_PASSWORD_VALIDATORS = [ { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",}, {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",}, {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",}, ] REST_FRAMEWORK = { "DEFAULT_AUTHENTICATION_CLASSES": ( "oauth2_provider.contrib.rest_framework.OAuth2Authentication", "rest_framework.authentication.SessionAuthentication", # To keep the Browsable API ), "DEFAULT_PERMISSION_CLASSES": ( "rest_framework.permissions.IsAuthenticated", "oauth2_provider.contrib.rest_framework.TokenHasReadWriteScope", ), } AUTHENTICATION_BACKENDS = ( "django.contrib.auth.backends.ModelBackend", # To keep the Browsable API "oauth2_provider.backends.OAuth2Backend", ) -
Django thousands and decimal separation
I have the following code in my html files: {% load humanize %} <table > ..... <td> {{e.giacenza_euro|floatformat:'2' |intcomma}} € </td> But it shows me ad example 1,000,00 €, but I wanto to obtain the following result: 1.000,00 €. How can I obtain it? -
How to restart Django development server without clearing cache?
Anyone know how I can restart Django's development server without clearing the cache? I thought maybe using a filesystem cache would do the trick, but it does not seem to. It appears that Django invalidates the previous cache keys when the development server is restarted. Or rather, Django probably looks for cache keys with a new prefix that is dependent upon the timestamp of the time when the server started. How do I prevent this behavior? -
Django - display and saving in a simple form
This is a very beginner-orientated question but I've been stuck on this issue all day. I would like to load the data for a specific record and be able to save it (Submit button in a template) but i'm still trying to understand instances and the save method. models.py class model_essays(models.Model): user = models.ForeignKey(User, default='1', on_delete=models.CASCADE) title = models.CharField(max_length=100, default='') date_added = models.models.DateTimeField(auto_now_add=True) body = models.TextField() def __str__(self): return self.title I understand the id is created automatically forms.py class frm_essays (forms.ModelForm): class Meta: model = model_essays fields = ['title', 'date_added', 'body'] urls.py urlpatterns = [ path('essay/<int:pk>', views.views_essay), ] views.py {stuck here} @login_required def views_essay(request, pk): if request.method == 'POST': updatedForm = essay_detail(request.POST, instance=request.? {I want the ID of the essay}) if u_form.is_valid(): updatedForm.save() messages.success(request, f'this essay has been updated') return redirect('essay_detail') else: updatedForm = frm_core_concept(instance=request.{as above}) context = { 'updatedForm': updatedForm } return render(request, 'essay_detail.html', context) On the decorator - I haven't gotten around to only allowing the users to view their own created essays, this would be the next large hurdle but not the issue I'm asking about. -
displaying a list of lists in django template
i have the following list of lists : [[ "task1","task2"],["task3","task4", "task5"]] and I'm trying to display each list on the x axis of a graph ( so in total I have 2 graphs) in the HTML template using a script as follow: {% for j in range %} <script> var x = "id"+{{j}}; var myChart = document.getElementById(x).getContext('2d'); Chart.defaults.global.defaultFontFamily = 'Arial'; Chart.defaults.global.defaultFontSize = 14; Chart.defaults.global.defaultFontColor = 'Darkblue'; var massPopChart = new Chart(myChart, { type: 'line', //bar horizontalbar, pie, line, doughnut, radar, polarArea data:{ labels:[ {% for t in tas %} {% for s in t %} '{{s}}', {% endfor %} {% endfor %} ], datasets:[{ label: 'Points', data:[{% for foo in pend %} '{{foo.pending_task.points_upon_completion}}' ,{% endfor %} ], backgroundColor:"grey", borderWidth:2, borderColor:'black' }] }, options:{ title:{ display: true, text:"Productivity", fontSize:20 }, legend:{ display: false // show or not show //position:'', // change position maybe left right }, layout:{ padding:{ left:0, right:0, top:0, botton:0 }, } } }); </script> {% endfor %} but it's not working, I'm not able to separate the two lists -
Django - substracting time
Welcome I have a problem. What field should be in model to substract times. I mean for example: 1st car made 500h 28 mins, 2nd car made 350h 15 min and i need a column substract where I'll have substraction from this two times. I made currently working model but only on integer field. When i tried time field and add something like 500:28 it gave me an error " incorrect time". Current model: class Aircraft (models.Model): id = models.AutoField(primary_key=True) registration = models.CharField(max_length=7) #hours to maintenance hours_to_maintenance = models.IntegerField(help_text = "test", null = True) #current hours ch = models.IntegerField(help_text = "test", null = True) #rm = models.IntegerField(help_text = "test", null = True) added_by = models.ForeignKey('auth.User', on_delete = models.CASCADE,) def __str__(self): return self.registration Really thanks for help -
make length in integerfield django model
my model.py is : from django.core.validators import MinLengthValidator,MaxLengthValidator class clients(models.Model): client_identity_id = models.IntegerField(validators=[MaxLengthValidator(11),MinLengthValidator(11)], unique=True) ' ' my serializers.py is : class UserSerializer(serializers.ModelSerializer): #money = serializers.IntegerField(required=False) class Meta: model = clients fields = ('client_identity_id','client_id','client_firstname','client_middlename','client_lastname','client_country','money','client_num') read_only_fields = ('money','client_id') def create(self, validated_data, **kwargs): validated_data['client_id'] = ''.join(secrets.choice(string.ascii_uppercase + string.digits) for i in range(8)) return clients.objects.create(**validated_data) my views.py is : def post(self,request): data=request.data serializer = UserSerializer(data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) but when i make a post request with client_identity_id=12345678910 it keep telling me "object of type 'int' has no len()" how can i fix that please ? -
ValueError: The QuerySet value for an exact lookup must be limited to one result using slicing. Django
I'm developing to do lists app , and have some issues , I tried some options , but it didn't help Here is my code: models class Lists(models.Model): date = models.DateTimeField(default=datetime.now,blank=True) title = models.CharField(max_length=200) class ListsItem(models.Model): date = models.DateTimeField(default=datetime.now,blank=True) title = models.CharField(max_length=200) main_list=models.ForeignKey(Lists, on_delete=models.PROTECT, null=True) views lists = Lists.objects.order_by('-date') listitem = ListsItem.objects.order_by('-date').filter(main_list=lists) Here what I tried listitem = ListsItem.objects.order_by('-date').filter(main_list=lists[0]) listitem = ListsItem.objects.order_by('-date').filter(main_list=lists).count() Is there any solutions ? -
Django project pdfkit.from_url not render image
I have used PDFkit to render my HTML file into a PDF. However, the image is not being displayed. I tried the solution for a similar problem posted here and rewrote my code as so: def get_pdf_for(request, slug): invoice = get_object_or_404(Invoice, slug=slug) data = dict() data["object"] = invoice data["DOB"] = "Jan 10, 2015" template = get_template('invoice/invoice_detail.html') html = template.render(data) pdf = pdfkit.from_string(html, False) filename = "sample_pdf.pdf" response = HttpResponse(pdf, content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="' + filename + '"' return response -
Split issues in django html template drop-down list
Actual Data Save in the table field: Active Network Tasks,Network Security,DC facilities Html Template: {% for subcat in all_subcats_keys %} <option value="{{subcat.subcategory }}">{{subcat.subcategory }}</option> {% endfor %} </select> Data's are displaying the drop-down list but it is not splitting by comma. It is displaying in a single data but I need to display as a list. So user select anyone value from the list. Means e.g. Active Network Tasks Network Security DC facilities Please help how to resolve this issues and I was trying to split the data but unable to do it. -
My django server app stops working everytime I insert code described bellow [closed]
Python 3.8.2 Django 3.0.5 When I insert this code: SETTINGS_DIR = os.path.dirname(__file__) PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir) PROJECT_ROOT = os.path.abspath(PROJECT_PATH) TEMPLATE_DIRS = ( os.path.join(PROJECT_ROOT, 'templates'), into my Django web app, it stops working. Terminal says SyntaxError: unexpected EOF while parsing Browser says Error connection refused But without that code it works without any problem. Please help. I appreciate your help. -
Django query that filters on calculated fields, searching for character within string
I have a django model that describes a cyclical status between two dates. It looks something like: class OnCallCycle(models.Model): crew = models.ForeignKey(Crew, on_delete=models.CASCADE) start = models.DateField() end = models.DateField() cycle = models.CharField(max_length=255) where start and end are the inclusive start and end date of the cycle, and cycle is a string representing the on call status cycle using one character per day. E.g.- if you had a 12 day cycle where the first 6 days were on (represented by a P), and the last 6 days were off (represented by an N, cycle would look like: PPPPPPNNNNNN. If the number of days between start and end are greater than the length of the cycle, it repeats. Thus, given an OnCallCycle instance, occ, one can calculate the on call status for a given date, d (known to be between start and end) by: delta = (d-occ.start).days status = occ.cycle[delta % len(occ.cycle)] Is there any way to do this within a query for a given date, d? I would like to do something like this: active_cycles = OnCallCycle.objects.filter( start__lte=d, end__gte=d ).filter( # Find all OnCallCycles where the cycle status for date d is not 'N' ) I am using Postgres for my … -
function inside class is not defined?
I'm trying to check if the unique id generated is unique in the database because it's only 6 characters. class Images(models.Model): uid = models.CharField(max_length=10, default=genid(), editable=False) def genid(): uid = uuid.uuid4().hex[:6] if Images.objects.get(uid=uid).exists(): uid = uuid.uuid4().hex[:6] return uid but it's not working. it tells me genid is not defined, Images is not defined. how can I fix this? thanks -
'[Errno 13] Permission denied: '/static'' even when I have permissions? Django Admin
I recently finished deploying my website using apache2 and django. I was testing everything, including the uploading process. But, when I select a file to upload and hit 'Save', it gives me an error: PermissionError at /admin/path/path2/add/ [Errno 13] Permission denied: '/static' I have all the right permissions, since I wrote these commands to allow permissions: sudo chown -R :www-data project/static sudo chmod -R 775 project/static sudo chown :www-data project/db.sqlite3 sudo chmod 664 project/db.sqlite3 sudo chown :www-data project/ This works, since when I do ls -l, the permissions are correct. This is my apache2 config file (just the static folder part): Alias /static /home/alexholst/excelsite/static <Directory /home/alexholst/excelsite/static> Require all granted </Directory> My settings.py file has this as STATIC_ROOT and STATIC_URL: STATIC_URL = '/static/' STATIC_ROOT = '/home/user/project/static' I dont know if this has to do with anything, but my css does load so i dont think it should have to do with the settings.py. Any suggestions are very much appreciated! -
django-dynamic-formset: copy values on adding form
I am using django-dynamic-formset to add forms of 2 inputs. I would like to to copy the values entered to the fields when the user clicks 'add another'. As far as I understand the description, this can be done with the option keepFieldValues. The script portion is this one <script type="text/javascript"> $('.formset_row-{{ formset.prefix }}').formset({ prefix: '{{ formset.prefix }}', keepFieldValues: '#id_set_set-0-id', }); </script> The part of the template renders as <tr class="row1 formset_row-set_set"> <td> <input type="hidden" name="set_set-0-id" id="id_set_set-0-id"> <input type="hidden" name="set_set-0-workout" id="id_set_set-0-workout"> <div id="div_id_set_set-0-reps" class="control-group"> <div class="controls"> <input type="number" name="set_set-0-reps" placeholder="reps" min="0" class="numberinput" id="id_set_set-0-reps"> </div> </div> </td> Am I misunderstanding the option or how should I apply it? I tried a couple of different options but without any success. TIA! -
Django URL as a variable not working for external site
I have a link being rendered to a template in Django, which changes from record to record. the HTML comes up blank, even though I verified the link works when hard coding it in the site. HTML source rendered: <div id="container2"> <img id="image2" src="" style="width:75%;height:40%;"> </div> source HTML template: <div id="container2"> <img id="image2" src="{{trip.pcs_mca_image.url}}" style="width:75%;height:40%;"> </div> the variable itself is a fully qualified URL such as https://googalopolis.photos.category.jdslkjf.blah.blah when I copy/paste the URL and not use jinja variable it works, but this is issue as each refresh is a new link. -
DjangoCMS - multisite with shared pages
I'm trying to build several websites with DjangoCMS with some shared pages. Is it possible to create a page which is shared across all django Sites? When looking at the code I've seen that the TreeNode is linked to a specific Site (https://github.com/divio/django-cms/blob/develop/cms/models/pagemodel.py#L52), so I guess that if it's possible it won't be really simple (even if I hope so :p). I'd be fine with an external module if DjangoCMS does not handle this, or even some ideas or lead of how to code this, I really don't have a clue. Thanks! -
Use foreign key in django_tables2
I am using django_tables2 to display some data, however one of the columns uses a foreign key and I can't figure out why this data isn't being displayed. I know the foreign key is working, since I can access it in the shell using: In [25]: b = Forms.objects.get(id = "v_akkadianakka1240-mM-1") In [26]: b.source.display Out[26]: 'Black 2000' But it is not clear to me how this translates to the table.py class. model.py class Sources(models.Model): category = models.TextField(db_column='CATEGORY', blank=True) bibtexkey = models.TextField(db_column='BIBTEXKEY', blank=True, primary_key = True) display = models.TextField(db_column='DISPLAY', blank=True, null=True) class Meta: managed = False db_table = 'sources' def __unicode__(self): return self.display class Forms(models.Model): id = models.TextField(db_column='ID', blank=True, primary_key = True) # Field name made lowercase. local_id = models.IntegerField(db_column='Local_ID', blank=True, null=True) # Field name made lowercase. language_id = models.TextField(db_column='Language_ID', blank=True, null=True) # Field name made lowercase. parameter_id = models.TextField(db_column='Parameter_ID', blank=True, null=True) # Field name made lowercase. value = models.TextField(db_column='Value', blank=True, null=True) # Field name made lowercase. form = models.TextField(db_column='Form', blank=True, null=True) # Field name made lowercase. segments = models.IntegerField(db_column='Segments', blank=True, null=True) # Field name made lowercase. comment = models.TextField(db_column='Comment', blank=True, null=True) # Field name made lowercase. source = models.ForeignKey(Sources, on_delete=models.CASCADE, db_column='source') cognacy = models.IntegerField(db_column='Cognacy', blank=True, null=True) # Field name made … -
Subquery for returning the most recent foreign key less than equal to a date
I have two models, Rank and Product. Rank has a foreign key Product. Every day a new Rank is created for each product. However, occasionally an error happens and some date may not have a Rank object for a Product. Therefore, I am trying to return a QuerySet that grabs the most recent Rank object less than or equal to date_str for every Product object. date_str can be any arbitrary date. If several Products do not have Rank objects with a pub_date equal to date_str this queryset should return the most recent Rank in the database before date_str. I thought this function would work, but it fails to return anything at all when an exact match for date_str is not found. date_str = '2020-04-27' def get_queryset(self): r = super().get_queryset().filter(pub_date__lte=self.date_str) return r.filter( pub_date=Subquery( (Rank.objects .filter(product=OuterRef('product')) .values('product') .annotate(last_updated=Max('pub_date')) .values('last_updated')[:1] ) ) ).order_by('-day_rank')