Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
validation on createview django
I am using generic create view to create a product , the code below creates a product, but how can I raise an error if a product name is duplicated in DB, or product already exist . in model product name is required =True class ProductBaseView(generic.CreateView): model = Product fields = ['ProductName'] template_name = "products.html" def form_valid(self, form): form.instance.user = self.request.user return super().form_valid(form) -
Updating django database with paypal transaction details
I have a django project that takes payments and I need to update my database with a new owed balance of 0 after the paypal transaction is complete. I'm a newbie to javascript and the paypal docs aren't being helpful. here's my code: I need to create a new payment from this and update the invoice with the correct amount owed. This is the payment page where the payment happens, make_payment.html. Payments go through successfully. {% extends "base.html" %} {% load crispy_forms_tags %} {% block content %} <div class="card card-primary"> <div class="card-header"> <h2>Make a Payment</h2> </div> <div class="float-right list-group-item"> <p class="font-weight-bold float-left p-0 m-0">Invoice Number</p> <p class="font-weight-bold float-right p-0 m-0">{{ object.pk }}</p> </div> <div class="float-right list-group-item"> <p class="font-weight-bold float-left p-0 m-0">Amount Billed</p> <p class="font-weight-bold float-right p-0 m-0">${{ object.amount_billed }}</p> </div> <div class="float-right list-group-item"> <p class="font-weight-bold float-left p-0 m-0">Amount Owed</p> <p class="font-weight-bold float-right p-0 m-0">${{ object.amount_owed }}</p> </div> <div class="float-right list-group-item"> <!-- Set up a container element for the button --> <div id="paypal-button-container"></div> </div> <div class="float-right list-group-item"> <a href="{% url 'invoice-list'%}"><button type="button" class="btn btn-primary float-right">Go back</button></a> </div> </div> <!-- Include the PayPal JavaScript SDK --> <script src="https://www.paypal.com/sdk/js?client-id=AeFSJDq8sonOdMT62SM-B040Eo4YWi6IS6xsPqDe-eamtEbGs9Jtbf5AbtwjnPC45LjFPOCa4sNoHEIt&currency=USD&disable-funding=credit&commit=false"></script> <script> // Render the PayPal button into #paypal-button-container paypal.Buttons({ // Set up the transaction … -
How to style a Django ModelForm
Does someone know how to style this form with bootstrap? from django.forms import ModelForm from .models import * from django import forms class OrderForm(ModelForm): class Meta: model = Order fields = ('__all__') ** ^ forms.py ^** class Order(models.Model): customer = models.ForeignKey(Customer, null=True, on_delete= models.SET_NULL) product = models.ForeignKey(Product, null=True, on_delete= models.SET_NULL) date_created = models.DateTimeField(auto_now_add=True, null=True) status = models.CharField(max_length=200, null=True, choices=STATUS) def __str__(self): return self.product.name This is the model where the form is about -
1 form, 1 class based view, 2 models, how?
I'm new to Django so explain it like I'm 5 I've been racking my brain(and the internet), not even sure its actually possible. I've tried a lot of different links/guides but either the concept is not going in or I'm trying to do something that isn't possible. My Idea is to have: Parent/Child Model, Class Based View, one form in the template. I'm open to any suggestion and I KNOW inline-formset is probably the right answer but every example I've found is years old, the Django documentation(v3.0) doesn't seem to differ from examples. The closest I've so far managed to come is having the template show the children, I can get the parent in the same template but it isn't the same form. Where am I going wrong or what base knowledge do I need to understand this? please don't just link me to the Django docs for inline-formset with no explanation Many thanks -
Why is not `url` showing up in the DRF Response
I can't get url to be returned when I use it in a HyperlinkedModelSerializer. # model.py class Promotion(TimeStampedMixin, models.Model): name = models.CharField(max_length=300) # ... # views.py class PromotionViewSet(viewsets.ModelViewSet): serializer_class = PromotionSerializer queryset = Promotion.objects.all() def retrieve(self, request, *args, **kwargs): instance = self.get_object() serializer = self.get_serializer(instance, context={'request': request}) return Response(serializer.data) # serializers.py class PromotionSerializer(serializers.HyperlinkedModelSerializer): url = serializers.HyperlinkedRelatedField( view_name="campaigns:promotion-detail", read_only=True ) class Meta: model = Promotion fields = ( "url", "id", "name", ) The JSON output I receive when querying curl -X GET http://localhost/api/promotion/2/: {"id":2,"name":"My promotion"} If I use reverse to check if the view_name in the HyperlinkedRelatedField exists, it prints the correct URL. My question is: why doesn't the url show up in the response? It works any all my other views (comparing code with classes that works hasn't helped). Read the DRF documentation but I see nothing new (using version 3.11.0) -
linking search results to a its own detail page
This is a django related question: I am doing an assignment where we are playing around making a search bar then afterwards letting each individual search result linked to its own page with more details. In this context we are doing a job search engine and I need assistance in when you click each jobs posting, it takes you to a separate page with more info about the job. We already made templates for all the pages. I understand that we have to make a request to the api again after doing it for the view function in the search bar and also use templating got fill up out the detailed search results.Im just not sure how would I apply these concepts to the html file that w ehave. here's the code View function code import requests from django.shortcuts import render def home(request): context = { 'example_context_variable': 'Change me.', } return render(request, 'pages/home.html', context) def search_results(request): search_query = request.GET['searchterm'] context = { 'result_count': 0, 'search_term': search_query, } context['results_count'] = 0 url = 'https://jobs.github.com/positions.json?location=bay+area&description=' url += search_query response = requests.get(url) results_data = response.json() job_list =[] for result in results_data: job_list.append(result) context['job_results'] = job_list return render(request, 'pages/search_results.html', context) **detailed Search Results Html … -
django 1.2 (jinja) form that takes in information and emails it
I would like to add a small form on an already existing html template. When the information is filled in and sent to the backend, i would like it to them be emailed to a specific email address. I am not sure how to do this. So far i have the route Route(r'/educationEmail', 'handlers.site_handlers.EducationEmailHandler', name='education_email'), I have the class set up: class EducationEmailHandler: template_filename = 'education_email' def get(self): pass def put(self): pass I have the form <form methos="POST" action="/educationEmail"> Name: <input type="text" name="fname" required><br> Email: <input type="text" name="email" required><br> <input type="submit" value="Submit"> </form> How can i put this together to make it function how i want it to? Thanks -
How do I add a custom filter in a django child model?
I'm pretty new to django and I'm working on an existing app that I did not write. The app handles some document management activities and whenever a document thumbnail is displayed, it currently displays all associated metadata. In my case, some of the metadata rows are unwanted (guid's are not very human friendly) and I therefore want to exclude some of the metadata. There are principally three tables, one for Documents, One for Metadata types, and a join table that ties them together. The guts of the join table are like so: class DocumentMetadata(models.Model): document = models.ForeignKey( on_delete=models.CASCADE, related_name='metadata', to=Document, verbose_name=_('Document') ) metadata_type = models.ForeignKey( on_delete=models.CASCADE, to=MetadataType, verbose_name=_('Type') ) value = models.CharField( blank=True, db_index=True, ), max_length=255, null=True, verbose_name=_('Value') ) The current code does this as it builds the thumbnail: queryset=context['object'].metadata.all() I've got a test version like so: context['object'].metadata.exclude(name__endswith='_Id') I have a convention where the guid metadata field name ends in _Id, and this filter works fine and does what I want it to do right now. I don't like it though. In future, I want to add a human_readable boolean field to the metadata type table and there are other places in the code base where I'll want to sift … -
JavaScript dropdown hidden in a css grid column
I have an admin header from Django which is divided in 2 columns with css grid. I included a JavaScript dropdown effect on the user icon to show other elements like "Change Password" and "Log Out" but the problem is that dropdown stays hidden inside the column, doesn't show outside. How can I fix this? Thanks in advance, A newbie in web development Images attached will show exactly the situation described above: Forced height of header to show the dropdown: Below you can find partial Django code: {% load i18n static %}<!DOCTYPE html> {% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %} <html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}> <head> <title>{% block title %}{% endblock %}</title> <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}"> {% block extrastyle %}{% endblock %} {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}">{% endif %} {% block extrahead %} {{ block.super }} <script> /* When the user clicks on the button, toggle between hiding and showing the dropdown content */ function openDropdown() { document.getElementById("myDropdown").classList.toggle("show"); } // Close the dropdown if the user clicks outside of it window.onclick = function(event) { if … -
Save a list of strings in django sql-lite database from view
I want to save a list of strings in django sql-lite database from view. Here is my piece of code def home(request): if request.method=='POST': tags=request.POST['tag'] tweets=scrape(tags) tweets=preprocessing(tweets) tweet=Tweet() tweet.text='save the tweet' tweet.save() return render(request,'home.html',{"tweet":tweets}) else: all_tweets=Tweet.objects.all return render(request,'home.html',{"old_tweet":all_tweets}) The following three-line can save a single string (tweet) in my database tweet=Tweet() tweet.text='save the tweet' tweet.save() But I have a list of strings (tweets) that I want to save in the database. I want to save the output of preprocessing(tweets) which is a list in my database. If I use a loop, I think it makes the process too much slow. So is there any efficient way. Thanks -
How do I insert multiple blocks into the base.html in Django?
Possibly I'm misunderstanding the inheritance of templates in Django, but why doesn't the below code work? Both child templates are inheriting from the parent template with different block names. base.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>test</h1> {% block index %}{% endblock %} {% block nav %}{% endblock %} </body> </html> index.html {% extends 'blog/base.html' %} {% block index %} <h1>This is the index.html page</h1> {% endblock %} nav.html {% extends 'blog/base.html' %} {% block nav %} <h1>This is the nav.html</h1> {% endblock %} I'm trying to grasp the concept of using multiple blocks so that I can place them on the templates that I need. -
django-ckeditor jquery call to display real-time editing
I am creating a django app that uses a RichTextField from django-ckeditor. I'm displaying a side-by-side of what the form will look like once submitted by using jQuery for my input fields. When transitioning from a TextField to RichTextField my jQuery function stopped working. // project.js // old keyup function for TextField var textInput = $('#id_text'); function setText(value) { $('#preview-text').text(value) } setText(textInput.val()) textInput.keyup(function () { var newText = $(this).val() setText(newText) } I have attempted this: // project.js // new jQuery function var textInput = CKEDITOR.instances['id_text'].getData(); function setText(value) { $('#preview-text').text(value) } setText(textInput) // removed .val() as this caused a TypeError: textInput.val is not a function textInput.keyup(function () { var newText = $(this).val() setText(newText) } This gives me TypeError: textInput.keyup is not a function. I would like to continue using the .keyup() function as a prompt for updating the side-by-side preview, but it appears it will need to be reworked. // project.js var textInput = $('textarea#id_text'); // specifying textarea yields [object Object] in HTML function setText(value) { $('#preview-text').text(value) } setText(textInput) textInput.keyup(function () { var newText = $(this).val() setText(newText) } The above function yields [object Object] in the <span id='preview-text'></span>. Previous post I used for the CKEDITOR.instance[].getData() call here. Any insights into how … -
How save selected option in django template?
After submitting the form, I can't save selected choice. Please help. <select id="category" class="form-control" name="category"> {% for option in categories %} <option value="{{option.name}}" {% if option.name == 'I don't know what's dynamic value write here(or how get value of POST-parameter' %}selected{% endif %}> {{ option.name }} </option> {% endfor %} </select> -
Catch post_save signal
Django 3.0.5. apps.py from django.apps import AppConfig from django.db.models.signals import post_save from django.dispatch import receiver class NewsConfig(AppConfig): name = 'news' def ready(self): from .models import News # Breakpoint 0 @receiver(post_save, sender=News) def handle_news_save(sender, **kwargs): print("Working") a = 0 # Breakpoint 1 models.py class News(models.Model): news_text = models.TextField() settings.py INSTALLED_APPS = [ ... 'news.apps.NewsConfig', ] The problem At Breakpoint 0 the interpreter stops when I run the application. That is at the next line Django gets to know that I'm catching the signal. But when I save an instance of News in admin site, at Breakpoint 1 the interpreter doesn't stop. And, of course, no printing happens. Could you help me catch the signal? -
Python Django SyntaxError: invalid syntax
I try today crete my first own site ,but i have error . When i run manage.py : File "manage.py", line 16 ) from exc ^ SyntaxError: invalid syntax In folder have : mysite/ manage.py mysite/ asgi.py __init__.py settings.py urls.py wsgi.py Maybe I wrong insall django or its another error ? Thanks -
Djnago: how to sum value for a specific field
I have the following situation Sottocategoria | Quantità type_1 | 100.00 type_2 | 100.00 type_1 | 100.00 I would to obtain a new table that give me the following view: Sottocategoria | Quantità type_1 | 200.00 type_2 | 100.00 here my models.py with "quantita" and "sottocategoria" fields' situation: class Tipologia(models.Model): nome= models.CharField('Categoria', max_length=30) class Sottocategoria(models.Model): tipologia = models.ForeignKey(Tipologia, on_delete=models.CASCADE) name = models.CharField( max_length=30) class Materiale(models.Model): conto = models.CharField('Conto', max_length=30, choices=( ('MATERIA PRIMA', 'MATERIA PRIMA'), ('SUSSIDIARIA', 'SUSSIDIARIA'), )) tipologia = models.ForeignKey(Tipologia, on_delete=models.SET_NULL, null=True) sottocategoria = models.ForeignKey(Sottocategoria, on_delete=models.SET_NULL, null=True) quantita=models.DecimalField('Quantità',max_digits=5) -
Django Python, Pass a dictionary and print it's content in html template
I have this function just for learning and want to print out the xxxxx and yyyyy on the html page. I have tried everything but the best I can get is aaa bbb def index(request): template = loader.get_template('bsapp/index.html') listan = {'aaa':'xxxxxx','bbb':'yyyyyy'} context = { 'listan': listan } return HttpResponse(template.render(context, request)) This is the html page, how would I write it?: {% for item in listan %} {{ item }}<br> {% endfor %} -
Save anonymous user data and map with the user after registeration or login in django
Hello I have an app where user come he get list of items he select item as many he wish then he click on "add to cart " where he get redirect to page where he sees the item selected and total price , Now to proceed further i want user to login or register and after he login or register he gets map with the item and price he selected and data get save in database i have an app which works perfect for login user but i want it for anonymous user who first select items and then go for registeration/login. models.py class UserSelectTest(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) testselected = models.TextField() class UserTest(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) name = models.CharField(max_length=255) email = models.EmailField() number = models.IntegerField() location = models.CharField(max_length=255) time = models.IntegerField() totalprice = models.CharField(max_length=255,null=True) test_submitted = models.BooleanField() views.py def ResultTest(request): var = request.POST.get('selectedTests') abc = UserSelectTest() abc.user = request.user abc.testselected = request.POST['selectedTests'] abc.save() def PostTest(request): if request.method == 'POST': test = UserTest() test.user = request.user test.name = request.POST['name'] test.email = request.POST['email'] test.number = request.POST['number'] test.location = request.POST['location'] test.time = request.POST['time'] test.totalprice = request.POST['price'] test.test_submitted = True test.save() I views i have two function where "ResultTest" stores the … -
How to submit value when link is clicked?
I want to print id of link when it clicked. I have tried below code but being naive i do not know what is wrong?? -
Why isn't Django passing ImageField data via ListView to a template?
This is my first programming project, and first question on StackOverflow - so please be gentle! I've been good and checked all the relevant existing questions and answers - apologies in advance if I've missed it. I have a model that contains images: models.py class Image(models.Model): image = models.ImageField(upload_to='portfolio-images/', blank=False, null=False) uploaded_by = get_user_model() uploaded = models.DateTimeField(auto_now_add=True, editable=False) alt_text = models.CharField(verbose_name='Alternate text', max_length=200, blank=True, null=True) def __str__(self): return self.alt_text def get_absolute_url(self): return reverse('image_detail', args=[str(self.alt_text)]) Which is handled by these views: views.py class ImageDetailView(DetailView): model = Image context_object_name = 'image' template_name = 'image_detail.html' class ImageListView(ListView): model = Image context_object_name = 'images' template_name = 'image_list.html' Now when these are passed to their relevant templates, the DetailView works as it should - passes the url to the template using this code, and the image renders in the browser. image_detail.html ... <img src="{{ image.image.url }}" alt="{{ image.alt_text }}"> ... But the ListView does not pass the url or alt-text into the template. Here's the code I use to call it in the template: image_list.html {% for image in images %} <img src="{{ images.image.url }}" alt="{{ images.alt_text }}"> {% endfor %} Weirdly, it is getting a response from the database, as the loop creates 5 … -
My table is becoming very wide because of a table row item is a long url
I am working with Django and Bootstrap to create this table. {% extends "jsonparser/base.html" %} {% block content %} {% if data %} <h1>{{ data }}</h1> {% else %} <table class="table table-hover"> <thead> <tr> <th scope="col">Property</th> <th scope="col">Actual Value</th> </tr> </thead> <tbody> <tr> {% for list in adobe %} <tr> {% for i in list %} <td>{{i}}</td> {% endfor %} </tr> {% endfor %} </tr> </tbody> </table> {% endif %} {% endblock content %} Right now when I view the output, the table is very long horizontally because of one of the properties I am printing is a very long URL. -
Django : Find 'difference' between two models
Say I have two models as follows - class DID_Definition_Model(models.Model): # DID to Region-Carrier Mapping did_number= models.CharField(max_length=32, validators=[alphanumeric], primary_key=True) class DID_Number_Assignment_Model(models.Model): #DID Number Assignment did_selector = models.ForeignKey(DID_Definition_Model, on_delete=models.CASCADE, primary_key=True, unique=True) I want to report on the 'difference' in entries, (possibly via difference method) which may be available in DID_Definition_Model did_number field but not in DID_Number_Assignment_Model did_selector field. In my failing attempt my thought process was to create a query which will contain all entries of did_number. Then repeat the same procedure to get all entries of did_selector. Finally compare the two queries using difference method. But I kind of got stuck at the first stage - getattr(DID_Definition_Model, did_number) Traceback (most recent call last): File "", line 1, in NameError: name 'did_number' is not defined * But the above is simply not possible as did_number is a valid field of DID_Definition_Model Any guidance will be helpful as I have been through multiple message boards and could not seem to find any way out. -
How to print extracted dictionary values in input fields of html (placeholder)
I am quite new to django and struggling to do something very simple.I am working on django based pdf data extraction project.in this project i am taking invoice pdf from user and then extracting fields like issuer, invoice_number, date, amount, currency, other.and then save those data into database.everything works fine but the only thing is i want to print extracted data in html forms input fields.guys could you please help me this is the flow input invoice.pdf --> extract button --> print values in inputs fields of html form --> submit after pdf extraction i got this dictionary {'issuer': 'Freefiber', 'amount': 29.99, 'date': '02/07/2015', 'invoice_number': '562044387', 'currency': 'EUR', 'other': {'amount_untaxed': 24.99, 'date_due': '02/08/2015', 'vat': 'FR60421938861', 'line_number': 'FO10479674', 'client_id': '10577874', 'desc': 'Invoice from Free'}} expected output here is my code views.py from django.shortcuts import render, redirect, HttpResponse from .models import InvoiceList import os from .forms import browse from .models import handle_uploaded_file from invoice2data import extract_data # Create your views here. def index(request): invoices = InvoiceList.objects.all() context = { 'invoices': invoices, } return (render(request, 'index.html', context)) def create(request): print(request.POST) issuer = request.GET['issuer'] invoice_number = request.GET['invoice_number'] date = request.GET['date'] amount = request.GET['amount'] currency = request.GET['currency'] other = request.GET['other'] invoice_details = InvoiceList(issuer=issuer, invoice_number=invoice_number, date=date,amount=amount,currency=currency,other=other) … -
Django login redirects to login page
During development I was able to login and logout just fine. However in production I am experiencing some headaches. When I login the page just reloads. I have it set to redirect to the home page upon login and all I have needed before was this: urls.py urlpatterns = [ path("", include('main.urls')), path('admin/', admin.site.urls), path('accounts/', include('django.contrib.auth.urls')), # For /accounts/login page ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) templates/registration/login.html {% extends "base.html" %} {% block content %} <div class="container"> <div class="card"> {% if form.errors %} <p>Your username and password didn't match. Please try again.</p> {% endif %} {% if next %} {% if user.is_authenticated %} <p>Your account doesn't have access to this page. To proceed, please login with an account that has access.</p> {% else %} <p>Please login to see this page.</p> {% endif %} {% endif %} <form method="post" action="{% url 'login' %}"> {% csrf_token %} {{ form|crispy }} <button type="submit" class="btn btn-success"><i class="fas fa-sign-in-alt"></i> Login</button> <input type="hidden" name="next" value="{{ next }}" /> </form> {# Assumes you setup the password_reset view in your URLconf #} <p><a href="{% url 'password_reset' %}">Lost password?</a></p> </div> </div> {% endblock content %} -
Django Static Refer To Wrong URL
I am using Django (v. 3.0.5). I am trying to load the image from database (from FileField) When I use <p>{{ post.profile_image.url }}</p> in HTML it returns me a good path (static/user_profile/user_1_default_profile_image.png) but when I put this into the img tag <img src="{{ post.profile_image.url }}" alt="image"> I have an 404 error GET /profile/static/user_profile/user_1_default_profile_image.png HTTP/1.1 404 2598" Template URL: profile/ Of course I used {% load static %} tag above the <img src="{{ post.profile_image.url }}" alt="image"> tag and I also configured the static files STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static") ] PS Sorry for my broken English