Add tests for file extension, add return button to detect page
This commit is contained in:
parent
98445d7d22
commit
e45210cfd9
@ -0,0 +1,25 @@
|
|||||||
|
# Generated by Django 4.2.7 on 2023-11-28 16:25
|
||||||
|
|
||||||
|
import django.core.validators
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("DetectionApp", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="detectimage",
|
||||||
|
name="image",
|
||||||
|
field=models.ImageField(
|
||||||
|
upload_to="plankton/%Y/%m/%d/",
|
||||||
|
validators=[
|
||||||
|
django.core.validators.FileExtensionValidator(
|
||||||
|
allowed_extensions=["jpg", "png"]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -1,6 +1,11 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.core.validators import FileExtensionValidator
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
|
|
||||||
|
|
||||||
class DetectImage(models.Model):
|
class DetectImage(models.Model):
|
||||||
image = models.ImageField(upload_to="plankton/%Y/%m/%d/")
|
image = models.ImageField(
|
||||||
|
upload_to="plankton/%Y/%m/%d/",
|
||||||
|
validators=[FileExtensionValidator(allowed_extensions=["jpg", "png"])],
|
||||||
|
)
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||||
|
from .forms import DetectForm
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
# Create your tests here.
|
|
||||||
|
# Test sprawdza czy wprowadzone pliki są w odpowiednim formacie
|
||||||
|
class CanUploadFiles(TestCase):
|
||||||
|
def test_upload_img_file(self):
|
||||||
|
file = SimpleUploadedFile(
|
||||||
|
name="jpg_file.jpg",
|
||||||
|
content=open(f"{settings.MEDIA_ROOT}/test_image.jpg", "rb").read(),
|
||||||
|
content_type="image/jpg",
|
||||||
|
)
|
||||||
|
form = DetectForm(files={"image": file})
|
||||||
|
print(form.errors)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
def test_upload_other_file(self):
|
||||||
|
file = SimpleUploadedFile(
|
||||||
|
"txt_file.txt", content=b"some text", content_type="text/plain"
|
||||||
|
)
|
||||||
|
form = DetectForm(files={"image": file})
|
||||||
|
self.assertFalse(form.is_valid())
|
||||||
|
@ -10,9 +10,8 @@ MODEL = YOLO("yolov8n.pt")
|
|||||||
|
|
||||||
|
|
||||||
def view(request):
|
def view(request):
|
||||||
form = DetectForm()
|
|
||||||
print(form.as_p())
|
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
|
form = DetectForm()
|
||||||
return render(request, "upload.html", {"form": form})
|
return render(request, "upload.html", {"form": form})
|
||||||
form = DetectForm(request.POST, request.FILES)
|
form = DetectForm(request.POST, request.FILES)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
@ -35,4 +34,4 @@ def view(request):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return render(request, "upload.html")
|
return render(request, "upload.html", {"form": form})
|
||||||
|
Binary file not shown.
@ -14,12 +14,13 @@
|
|||||||
<form method="POST" enctype="multipart/form-data">
|
<form method="POST" enctype="multipart/form-data">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="side_menu">
|
<div class="side_menu">
|
||||||
{% if not img_saved%}
|
{% if img_saved is None %}
|
||||||
<p id="description">Choose image for analysis</p>
|
<p id="description">Choose image for analysis</p>
|
||||||
|
<input type="submit" id="submit" value="Submit">
|
||||||
{% else %}
|
{% else %}
|
||||||
<p id="description">Photo saved</p>
|
<p id="description">Photo saved</p>
|
||||||
|
<button onclick="location.href='{% url 'detect' %}'" id='submit' method="GET" type='button'>Submit again</button>
|
||||||
{%endif%}
|
{%endif%}
|
||||||
<input type="submit" id="submit" value="Submit">
|
|
||||||
</div>
|
</div>
|
||||||
<div class="upload_field">
|
<div class="upload_field">
|
||||||
<label for="id_image", class="upload_button">
|
<label for="id_image", class="upload_button">
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 10 KiB |
BIN
PlanktonDetector/uploaded_media/test_image.jpg
Executable file
BIN
PlanktonDetector/uploaded_media/test_image.jpg
Executable file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
Loading…
Reference in New Issue
Block a user