Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django ModelForm iterate through MultipleChoiceField Values and process on POST
Level: Absolute Beginner, trying to build an app to perform some db operation through web UI models.py from django.db import models class MysqlUser(models.Model): username = models.CharField(max_length=100) password = models.CharField(max_length=50) environment = models.CharField(max_length=50) forms.py from django import forms from onboard_app.models import MysqlUser class MysqlUserForm(forms.ModelForm): CHOICES = ( ('test', 'Test'), ('develop', 'Develop'), ('staging', 'Staging'), ) environment = forms.MultipleChoiceField(choices=CHOICES) password = forms.CharField(widget=forms.PasswordInput) class Meta: model = MysqlUser fields = ('username', 'password', 'environment') views.py from django.shortcuts import render from onboard_app.serializers import MysqlUserSerializer from rest_framework import generics from onboard_app.forms import MysqlUserForm from onboard_app.models import MysqlUser from django.views.generic.edit import CreateView, UpdateView, DeleteView class MysqlCreateView(CreateView): model = MysqlUser form_class = MysqlUserForm template_name = 'mysqluser_form.html' success_url = '/mysql/user/add/' mysqluser_form.html {% extends "myapp/base.html" %} {% block title %}MyApp{% endblock %} {% block content %} <h1>MySQL User Access</h1> <form method="post"> {% csrf_token %} {{ form.as_p }} <input type="submit" class="btn btn-primary" value="Grant Access"> </form> {% endblock %} I'm trying to get Value(s) of field or MultipleChoiceFiled environment after the user Form Submit, and loop through the entered values to perform some action. I have been trying this for long, still can't figure out how. I don't want to process anything in the frontend html. I'm thinking it has to be processed … -
How to use depedent chained dropdown list with Django select2
I am trying to list out cities that depend on the country selected I am going through the examples on the docs https://django-select2.readthedocs.io/en/latest/extra.html#chained-select2 I don't seem to understand How to implement what is on the docs. when I tried implementing it I get this error message TypeError at /page/ __init__() got an unexpected keyword argument 'instance' Here is the traceback error Internal Server Error: /page/ Traceback (most recent call last): File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\core\handlers\exception.py", line 34, in inner response = get_response(request) File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response response = self.process_exception_by_middleware(e, request) File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\views\generic\base.py", line 71, in view return self.dispatch(request, *args, **kwargs) File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\views\generic\base.py", line 97, in dispatch return handler(request, *args, **kwargs) File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\views\generic\edit.py", line 168, in get return super().get(request, *args, **kwargs) File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\views\generic\edit.py", line 133, in get return self.render_to_response(self.get_context_data()) File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\views\generic\edit.py", line 66, in get_context_data kwargs['form'] = self.get_form() File "C:\Users\Benedict\Miniconda3\envs\django2.1\lib\site-packages\django\views\generic\edit.py", line 33, in get_form return form_class(**self.get_form_kwargs()) TypeError: __init__() got an unexpected keyword argument 'instance' [19/Apr/2020 20:58:54] "GET /page/ HTTP/1.1" 500 94467 models.py class Country(models.Model): name = models.CharField(max_length=255) class City(models.Model): name = models.CharField(max_length=255) country = models.ForeignKey('Country', related_name="cities", on_delete=models.CASCADE) forms.py from django import forms from django_select2 import forms as s2forms from .models import … -
Django-markdownx is not showing image previews
I've been trying to get the django-markdownx app to work within the django admin panel, and I've been running in to a problem where whenever I test the drag-and-drop image upload feature in my admin panel, the image is added to my project's markdownx/ directory, but doesn't show up in the live preview. Any ideas on how to fix this? I have everything else working, but I can't seem to get images to show up. Any help would be much apprecieted. My model: class Item(models.Model): post_content = MarkdownxField() My urls.py: urlpatterns = [ path('markdownx/', include('markdownx.urls')), path('', include('myapp.urls')), path('admin/', admin.site.urls), ] Let me know if I need to provide more information. -
Can Users have other Users in a Relationship in Django?
So, I am fairly new to Django and I know there is just one User type. I am wondering what is the best way for me to go about setting up my models. My site needs 4 different types of users: admins (including superuser), teachers, students, parents. I want only admin to be able to use the built in admin UI. I want teachers to have some admin features but only on frontend UI. So far I have extended AbstractBaseUser and BaseUserManager to create users that can be assigned the 4 roles mentioned above and a few different things. They are working and I can manage authorization of page views with them, but this is just scratching the surface of what I hope to do. But how do I manage this when I want a teacher to have many students in a class and only see those students when they login? I want these students to be assigned to teacher by the admin and then allow the teacher to have some permissions with the student info. Can I use signals to create a Teacher model that belongs to aUser with a role of teacher and that same Teacher model has_many``Students. … -
Using python twitter library how can i extract the list of users follow a particular #hashtags anonymously?
So, I have a problem statement in which I want to extract the list of users who are following a particular #hashtag like #obama, #corona etc. The challenge here is I want to extract this data anonymously i.e without providing any account keys. I tried a library named twint that is capable of doing this but it's very slow. can anyone recommend a better alternative for my use case..? -
How to update a value from table accessed via foreign key django ORM
My DB models looks similar to this class Leave(models.Model): available_leaves = models.IntegerField(default = 8) class Policy(models.Model): name = models.CharField(max_length=20) class Student(models.Model): name = models.CharField(max_length=20) rating = models.IntegerField(default=7) class StudentLeave(models.Model): leave = models.ForeignKey(Leave, on_delete=models.CASCADE) policy = models.ForeignKey(Policy, on_delete=models.CASCADE) student = models.ForeignKey(Student, on_delete=models.CASCADE) I want to deduct the leave of the student from here, I have tried this leave = Leave.objects.filter(pk = 1).first() policy = Policy.objects.filter(pk = 1).first() student = Student.objects.filter(name = 'matthew).first() studentleave = StudentLeave.objects.filter(student = student, policy = policy, leave = leave).first() Now I have studentleave object through which I can access every table connected to this table. So I have tried accessing this studentleave.leave.available_leaves-=1 # Tried reducing it by one print(studentleave.leave.available_leaves) #prints as 7 as expected because 8 is default But when I access the same model again, it's value is still 8 (old value) I have tried update and save method on studentleave.leave.update() and studentleave.update() which are basically throwing error because that object has no attribute update How can I save those new values for them. Thanks in advance for spending your time to solve this problem. -
Django: Login_required(redirect to custom login_url) not working
views.py file @login_required(login_url='frontpage') def dash(request): events = Event.objects.all() if request.method == 'POST': form = createEventForm(request.POST) args = {'form':form , 'events':events} if form.is_valid(): form.save(request.POST) return render(request, 'dashboard/index.html',args) else: form = createEventForm() args = {'form':form , 'events':events} return render(request, 'dashboard/index.html',args) urls.py file urlpatterns = [ url('admin/', admin.site.urls), url(r'^$', frontviews.login), path('', frontviews.login, name = "login"), url(r'frontpage^/$', frontviews.login, name = "frontpage"), url(r'^dashboard/$', dashviews.dash, name = "dashboard"),#require login to fix url(r'^$', dashviews.logout, name = "logout"), url(r'^forum/$', forumviews.forumpage, name = 'forum'), url(r'^events/$', dashviews.EventPage, name = 'events'), ] I want the user to be required to be logged in from the frontpage(of website), i.e. i want to redirect user to frontpage if he tries to use url[website.com/dashboard] to directly enter dashboard. -
How can I list all answers from answer model to my question model in Django ? Relation many to one?
I would like to ask you for your help. I have two models. Question and Answer. One question can have many answers. My models looks like this: class Question(models.Model): question = models.CharField(max_length=300) answered = models.BooleanField(default=False) created = models.DateTimeField(auto_now_add=True) user = models.ForeignKey(User, on_delete=models.CASCADE) votesscore = models.IntegerField(default='0') amountofvotes = models.IntegerField(default='0') def __str__(self): return self.question class Answer(models.Model): question_id = models.ForeignKey(Question, on_delete=models.CASCADE, blank=False, null=True) answer = models.TextField(max_length=1000) created = models.DateTimeField(auto_now_add=True) user = models.ForeignKey(User, on_delete=models.CASCADE) votesscore = models.IntegerField(default='0') amountofvotes = models.IntegerField(default='0') def __str__(self): return self.answer Here is my views.py: def home(request): allquestionswithanswers = Answer.objects.prefetch_related('question_id') allquestionswithoutanswers = Question.objects.filter(answered = False) return render(request, 'main/home.html', {'allquestionswithanswers': allquestionswithanswers, 'allquestionswithoutanswers': allquestionswithoutanswers}) And here is my home.html: <h1>Questions with answers:</h1> <ul> {% for allquestionwithanswer in allquestionswithanswers %} <li> {{ allquestionwithanswer.question_id }} {{ allquestionwithanswer.user }}<br><br> <br><br> {{ allquestionwithanswer.answer }} </li> {% endfor %} </ul> <h1>Questions without answers:</h1> <ul> {% for allquestionwithoutanswer in allquestionswithoutanswers %} <li> {{ allquestionwithoutanswer.question }} {{ allquestionwithoutanswer.user }} <br><br> {{ allquestionwithoutanswer.answer }} </li> {% endfor %} </ul> And some things are working and some not and I don't get how can I fix them :( I have working "Questions with answers:". It is listing my question, and corresponding answer, but if question has multiple answers, it is printing question … -
How to get the number of inserts from a raw INSERT query in Django?
I'm running a fairly large insert into select query in Django, which I do using MyModel.objects.raw(insert_query) But that doesn't do anything since queries seem to only be run when something is taken from it's result. So when I do this it runs the query MyModel.objects.raw(insert_query)[0] but also gives an error: TypeError: 'NoneType' object is not iterable Is there a way that I can run the raw query and get the number of records it inserted or a possible error if that occurred? -
What is the use of wsgi.py file that is there in django application when created using django-admin startproject
Can anyone help me in understanding what is the use of wsgi.py file? import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings.local") application = get_wsgi_application() -
I'd like to build a python code editor for my django project
Currently I have a Django project which is based on stocks. I would like include a code editor in my project. So, that users can write their own strategy in python. the user written code will be executed in the backed and populates the output. Is there any plugins or anything else for code editors? How can I achieve this? Thanks In Advance!! -
Migrate project from from Symfony 3 to Django
I have a project in Symfony 3 (SaSS application) relatively large monolith, about 5 years old with more than 150 entities and about 13GB of MySQL database. The truth is that for about a year I have been doing smaller projects in Django and have fallen in love for obvious reasons. Now, before my Symfony application continues to grow, I would like to separate the backend (Django -in process-) from the frontend (Vue-pending-) and I have some doubts about the migration process: I have created some models already in Django but I am not very clear on how to migrate the database so that both applications work on it, since during the duration of the migration process, the two applications will have to coexist in the same database. How would the process be so as not to lose information and that both applications coexist? Thank you -
I can't activate virtual environment
Python 3.7.4 Windows 10 I made new virtual environment P:\learning_log\env But It seems like I cant activate it with: P:\learning_log\env>Scripts\activate.bat Just because there no such file named activate.bat In Scripts I have only python.exe and pythonw.exe, I have already remade environment for more then 10 times, searched in Net, so can't solve it, help me pls -
Django - save copy of instance in inherited model
Using Django 2.1.5, I have one model that is completely inherited by another model. Both tables in DB. I want to save 'revisions' of the model as the inherited model. All fields should be the same at the time of the copy (including the id/pk). What's the right and quick way to copy the instance of the parent model to the inherited? Let's say these are the models (but with a lot of fields, foreign keys, json fields..): class MyModel(models.Model): id = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True, unique=True, primary_key=True) identifier = models.IntegerField(default=-1) title = models.CharField(max_length=1000) revision = models.IntegerField(default=0) class MyModelRevisions(MyModel): pass Now, I want to take an instance of MyModel and completely copy it to MyModelRevisions. I thought of something like this: model_revision = MyModelRevisions(MyModel.objects.get(pk=my_model.pk)) model_revision.save() But I'm getting an error message saying that the title of my_model is not a valid UUID. -
Configure Nginx with two docker-compose containers (Flask and Django)
I am trying to expose two different address used like APIs. One in Django and the other one in Flask, they are Docker-compose containers. I need configure Nginx for expose the two containers in two different subdomains. It is my Nginx.conf: http { upstream app { server django:5000; } upstream app { server app:5090; } server { listen 5090; root /usr/share/nginx/html; location / { try_files $uri @app; } location @app { include uwsgi_params; uwsgi_pass flask:5090; } } server { listen 5000; charset utf-8; location / { try_files $uri @proxy_to_app; } location @proxy_to_app { ... } } } And my production.yml nginx: build: ./compose/production/nginx image: *image ports: - 80:80 depends_on: - flask - django My nginx.conf probably is wrong, if you know a documentation or a way for do it, please, answer me. -
Two orders being submitted after checkout
I am with an issue that after I submit a payment the order is being submitted twice. There are some cases that if I load the application for the first time in my device it will be charged once. However, since it is done more than once there will have more than one charge for the same order. # Create your views here. stripe.api_key = settings.STRIPE_SECRET @login_required() def checkout(request): if request.method == "POST": # call the two forms that will be used order_form = OrderForm(request.POST) payment_form = MakePaymentForm(request.POST) # Then will check if both forms are valid if yes, save if order_form.is_valid() and payment_form.is_valid(): order = order_form.save(commit=False) order.date = timezone.now() order.save() cart = request.session.get('cart', {}) total = 0 for id, quantity in cart.items(): destination = get_object_or_404(Destinations, pk=id) total += quantity * destination.price order_line_item = OrderLineItem( order=order, destination=destination, quantity=quantity ) order_line_item.save() try: customer = stripe.Charge.create( amount=int(total * 100), currency="EUR", description=request.user.email, card=payment_form.cleaned_data['stripe_id'], ) except stripe.error.CardError: messages.error(request, "Your card was declined!") if customer.paid: messages.error(request, "You have successfully paid") request.session['cart'] = {} #clear the cart in session return redirect(reverse('destination')) else: messages.error(request, "Unable to take payment") else: messages.error(request, "We were unable to take a payment with that card!") else: payment_form = MakePaymentForm() order_form = OrderForm() … -
django rest framework - model with string primary key
I'm trying to add Tag model to django rest framework. The model is extremaly simple: class Tag(models.Model): name = models.CharField(max_length=128, primary_key=True) as well as serializer: class TagSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Tag fields = '__all__' and view: class TagView(viewsets.ModelViewSet): queryset = Tag.objects.all() serializer_class = TagSerializer After that I can access a particular tag, for example http://127.0.0.1:8000/tag/SharePoint/ But I cannot list all of them: http://127.0.0.1:8000/tag Results in: Could not resolve URL for hyperlinked relationship using view name "tag-detail". You may have failed to include the related model in your API, or incorrectly configured the lookup_field attribute on this field. Do I have to add an id field to the model? -
Problem while deploying a Django app with Apache2 on Ubuntu
I've been trying to deploy a Django app on Ubuntu 18.04 using Apache2 for the past couple of days now, and it still doesn't work. My apache2 config is: <VirtualHost *:1337> <Directory /var/www/LGSM_webpanel/LGSM_webpanel> <Files wsgi.py> Require all granted </Files> </Directory> ErrorLog ${APACHE_LOG_DIR}/LGSM-error.log CustomLog ${APACHE_LOG_DIR}/LGSM-access.log combined WSGIScriptAlias / /var/www/LGSM_webpanel/LGSM_webpanel/wsgi.py WSGIDaemonProcess LGSM_webpanel python-path=/var/www/LGSM_webpanel WSGIprocessGroup LGSM_webpanel DocumentRoot /var/www </VirtualHost> However, for some reason, when I access http://localipofthemachine:1337 I just get the google chrome error Connection refused. Now, the server works when I use manage.py runserver, and I can fully access it, but when I use apache, I just get this error. The apache logs are also empty by the way. Thanks in advance for your help -
Get domain making request to my django application
I have a django view from which I would like to determine which domain is making a request to it. When I print(request.__dict__) inside the view, I see a bunch of information but nothing on the domain making the request to view. For example if a website www.okay.com is making a request to my django application, I would love to get the value inside my view, any idea on how I can retrieve this information would be much helpful. -
Django import export extended User
I'm trying to use django import export to import data in my app. Even with the documentation, I can't make it work for my "Proprietaire" Model, wich is extending django's user model. Here my models: class Proprietaire(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) adresse = models.CharField(max_length=500) telephone_regex = RegexValidator( regex="[0-9]{10}", message="Veuillez entrer un numéro de téléphone valide." ) telephone = models.CharField(validators=[telephone_regex], max_length=10) date_inscription = models.DateField(auto_now_add=True) The user import seems to be working fine but then I don't know how to import my Proprietaires and link them to my Users. Reading documentation I tried something like that in my admin file: class ProprietaireResource(ModelResource): class Meta: model = Proprietaire fields = ('user__username','telephone','adresse') import_id_fields = ('user__username') @admin.register(Proprietaire) class ProprietaireAdmin(ImportExportModelAdmin): resource_class = ProprietaireResource admin.site.unregister(User) @admin.register(User) class UserAdmin(ImportExportModelAdmin): pass But whatever I try (without import_id_fields or without fields, or with adrresse as import_id_fields...), I keep getting errors like: Traceback (most recent call last): File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 500, in import_row instance, new = self.get_or_init_instance(instance_loader, row) File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 277, in get_or_init_instance instance = self.get_instance(instance_loader, row) File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 265, in get_instance import_id_fields = [ File "C:\Users\perre\AppData\Local\Programs\Python\Python38\lib\site-packages\import_export\resources.py", line 266, in <listcomp> self.fields[f] for f in self.get_import_id_fields() KeyError: 'a' I don't understand whats happening, can someone help me out? For … -
Django 3.0 server is automatically stops
Recently I started using django3, in this new version whenever I am try to access my admin panel, it stops automatically. But reset of the urls are working fine. Like if I go to 127.0.0.1:8000/api/ this url it will work fine but if I go to 127.0.0.1:8000/admin/ and type my username and password it automatically stops the server. I have tried many different project. But same problems occurs . -
React JS: POST to nested tables in a Django back end
I want to POST multiple nested tables in our backend. We have tried to do the POST in the one function but that didn't work. We keep getting an issue with the foreign keys and 400 BAD REQUEST issue with the Room table(The one everything is nested into). Here is the issue: IntegrityError at /dwelling/data/ insert or update on table "Dwelling_roomdata" violates foreign key constraint "Dwelling_roomdata_related_room_id_5388fced_fk_Dwelling_" DETAIL: Key (related_room_id)=(null) is not present in table "Dwelling_room". Here is the backend we want to post to: [ { "room_code": "ABC-XYZ_1", "related_dwelling": 4, "room_name": "Living Room", "data": [ { "related_room": "ABC-XYZ_1", "co2": "12.94,87.695,61.7,8.171,6.336,95.6,90.24,47.6,74.784,44.62,25.159,53.409,39.378,49.255,31.247,60.789,52.643,46.596,96.631,45.303,48.122,51.384,46.221,21.482,46.259,68.254,89.263", "humidity": "29.404,6.598,72.877,67.636,37.648,84.184,78.746,47.629,44.967,45.176,54.086,1.101,34.513,70.163,61.245,5.81,21.01,67.954,37.802,38.149,68.162,94.878,44.093,8.396,91.185,6.43,61.908,36.355,36.347", "temperature": "7.424,98.779,4.836,29.367,50.697,23.392,8.027,72.277,83.955,12.916,3.44,71.052,48.132,35.48,34.934,96.888,6.806,7.574,13.066,61.898,15.185,16.058,93.841,1.174,62.919,95.049,80.526,35.162" } ], "devices": [ { "device_code": "ABC-XYZ_1_1", "device_name": "Samsung Smart TV", "mac_address": "g2-h3-h4-j5-j6", "energy_used": 50, "state": false, "room": "ABC-XYZ_1" }, { "device_code": "ABC-XYZ_1_2", "device_name": "TV", "mac_address": "0", "energy_used": 0, "state": false, "room": "ABC-XYZ_1" } ], "suggestion": [ { "id": 1, "related_room": "ABC-XYZ_1", "suggestion": "Turn off the Lights" } ] } Here is the code we are trying to connect to the backend: class AddRoom extends Component { state = { modal: false, credentials: { room_code: 'ABC-XYZ_5', related_dwelling: '4', room_name: 'Connors Bedroom', data: { related_room: 'ABC-XYZ_5', co2: '0', humidity: '0', temperature: '0' }, devices:{ device_code: 'ABC-XYZ_5_1', device_name: … -
How to catch sql error in Django Rest Framework serializer?
I've got a Django Rest Framework endpoint to which an external party sends data in a fairly high volume. Because it was running about 200 inserts per second I checked the queries it was making. I found that it actually first did a SELECT query to check whether there was a duplicate id. Since I didn't think there would be any (or at least not many) duplicate keys I wanted to disable that check. So I added this line to my Serializer: id = serializers.UUIDField(validators=[]) # Disable the validators for the id, which improves performance (rps) by over 200% And as you can see in the comment, it greatly enhances the performance. However, one disadvantage of it is that it gives a 500 error if a duplicate key is in fact posted, saying duplicate key value violates unique constraint How would I be able to catch this Database error and returning a neat response instead of throwing this 500 error? -
Django + Celery. Lost connection to MySQL server during query
I have a Django app that run some chained tasks with celery. The first task asks an external app for it's DB dump, the second one downloads it and the third is the one that is giving me problems. First of all it unzips the dump through Popen, it takes like 30 minutes. After that it runs a sed command also through Popen that deletes a few tables that I won't use. This sed command takes like one hour Finally I run a Popen once more to restore the dump proc = Popen([ "mysql", "-h{}".format(settings.MYSQL_HOST), "-u{}".format(settings.MYSQL_USER), "-p{}".format(settings.MYSQL_PASSWORD), snapshot_restore.database_name ], stdout=PIPE, stderr=PIPE, stdin=sed_dumpfile) This process takes 8 hours approximately. Once the restore is finished it updates a django model in the DB, and that singal should triggers the next task. snapshot_restore = SnapshotRestore.objects.get(id=snapshot_restore_id) snapshot_restore.status = "processing" snapshot_restore.save() # Here I make the unzip, the sed and the restore snapshot_restore.status = "finished" snapshot_restore.database_status = "active" snapshot_restore.save() But here is when I have this error [2020-04-19 11:33:20,723: WARNING/ForkPoolWorker-2] File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 266, in _set_autocommit self.connection.autocommit(autocommit) [2020-04-19 11:33:20,723: WARNING/ForkPoolWorker-2] File "/usr/local/lib/python3.6/site-packages/MySQLdb/connections.py", line 256, in autocommit _mysql.connection.autocommit(self, on) [2020-04-19 11:33:20,723: WARNING/ForkPoolWorker-2] _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') [2020-04-19 11:33:20,723: WARNING/ForkPoolWorker-2] The above … -
How to get rid of additional image info (current image, clear checkbox) while rendering Django Form with Imagefield?
I have a model form containing Imagefield but when rendering, my template adds few additional info about current image (path), so it looks like this: Now: user1/Avatar.png Change: (Choose file...) I'd like to get rid of this "Now: ...", so it shows only the Choose file.. button. When in Profile model avatar field is set to null=True, blank=True, it also renders checkbox to clear the avatar, which isn't anything I'd like to have as well. models.py class Profile(models.Model): name = models.CharField(max_length=250) avatar = models.ImageField(upload_to=user_directory_path) forms.py class ProfileForm(forms.ModelForm): class Meta: model = Profile fields = ('name', 'avatar') template <section class="container"> <form action="." id="Form" enctype='multipart/form-data' method="POST"> {{ profile_form.as_p }} {% csrf_token %} <p> <input type="submit" value="Update!"/> </p> </form> </section>