I have a template containing a form . Whenever i am using the form to submit an image, the image is not being added to my admin table and neither being added to my media folder. What should I do ?
I was expecting that the image would be uploaded to my django admin's table's record and also added to my media folder but Whenever the image is being submitted along with other fields the other data is being uploaded to admin except image.
This is the section of template containing form
<form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="mb-3">
<label for="Name" class="form-label">Name</label>
<input type="text" class="form-control" id="seller_name" name="seller_name">
</div>
<div class="mb-3">
<label for="phone" class="form-label">Phone No.</label>
<input type="text" class="form-control" id="seller_phone" name="seller_phone">
</div>
<div class="mb-3">
<label for="Rawmaterialname" class="form-label">Raw Material Name</label>
<input type="text" class="form-control" id="seller_raw" name="seller_raw">
</div>
<div class="mb-3">
<label for="priceperstd" class="form-label">Price Per Std.</label>
<input type="text" class="form-control" id="seller_price"
placeholder="Your Expected Price Per std." name="seller_price">
</div>
<div class="mb-3">
<label for="textarea" class="form-label">Description</label>
<textarea class="form-control" name="desc" id="desc" cols="30" rows="10"
placeholder="Enter your text here"></textarea>
</div>
<div class="mb-3">
<label for="formFile" class="form-label">Enter Image</label>
<input class="form-control" type="file" id="formFile" name="img">
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="seller_agree" checked>
<label class="form-check-label" for="agree">Agree <a data-bs-toggle="modal"
data-bs-target="#terms" class="link-primary">Terms And
Conditions</a></label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
this is the section of my views.py
def index(request):
if request.method=="POST":
# form = Seller_table(request.POST, request.FILES)
name=request.POST.get('seller_name')
phone=request.POST.get('seller_phone')
raw=request.POST.get('seller_raw')
price=request.POST.get('seller_price')
discription=request.POST.get('desc')
image=request.POST.get('img')
Seller=Seller_table(seller_name=name,seller_phone=phone,seller_raw=raw,seller_price=price,desc=discription,img=image)
Seller.save()
messages.success(request,'Successfully Made A Registration')
return render(request,"seller.html")
this is my models.py
from django.db import models
# Create your models here.
class Seller_table(models.Model):
seller_name=models.CharField(max_length=100)
seller_phone=models.CharField(max_length=100)
seller_raw=models.CharField(max_length=50)
seller_price=models.CharField(max_length=10)
desc=models.CharField(max_length=500,default="")
img=models.ImageField( upload_to='images/',default="")
def __str__(self):
return self.seller_raw
this the section of my urls.py of base directory
from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('',include("Home.urls")),
path('seller/',include("Seller.urls")),
path('buyer/',include("Buyer.urls")),
]+ static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
this is my settings regarding media
# Base url to serve media files
MEDIA_URL = '/media/'
# Path where media is stored
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
Is something else needed?