feat: Add basic image upload (WIP)
This commit is contained in:
parent
68e6d3e299
commit
240ced0374
@ -2,11 +2,12 @@ from django.contrib import admin
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import Animal, Species, RescueOrganization, AdoptionNotice, Location, Rule
|
||||
from .models import Animal, Species, RescueOrganization, AdoptionNotice, Location, Rule, Image
|
||||
|
||||
admin.site.register(Animal)
|
||||
admin.site.register(Species)
|
||||
admin.site.register(RescueOrganization)
|
||||
admin.site.register(Location)
|
||||
admin.site.register(AdoptionNotice)
|
||||
admin.site.register(Rule)
|
||||
admin.site.register(Rule)
|
||||
admin.site.register(Image)
|
||||
|
@ -17,7 +17,8 @@ class AdoptionNoticeForm(forms.ModelForm):
|
||||
class AnimalForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Animal
|
||||
fields = ['name', "species", "sex", "date_of_birth", "description", "photos"]
|
||||
picture = forms.ImageField(label='Image', required=False)
|
||||
fields = ['name', "species", "sex", "date_of_birth", "description"]
|
||||
widgets = {
|
||||
'date_of_birth': DateInput(),
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.3 on 2024-03-20 10:35
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('fellchensammlung', '0002_rule'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='image',
|
||||
name='uploaded_by',
|
||||
),
|
||||
]
|
@ -11,7 +11,6 @@ class Image(models.Model):
|
||||
title = models.CharField(max_length=200)
|
||||
image = models.ImageField(upload_to='images')
|
||||
alt_text = models.TextField(max_length=2000)
|
||||
uploaded_by = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
@ -7,6 +7,7 @@
|
||||
<form method = "post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<input type="file" name="picture">
|
||||
<button name="button_add_another_animal" type="submit">Speichern und nächstes Tier hinzufügen</button>
|
||||
<button name="button_save_and_continue" type="submit">Speichern und weiter</button>
|
||||
</form>
|
||||
|
@ -3,7 +3,7 @@ from django.http import HttpResponse
|
||||
from django.urls import reverse
|
||||
import markdown
|
||||
|
||||
from fellchensammlung.models import AdoptionNotice, MarkdownContent, Animal, Rule
|
||||
from fellchensammlung.models import AdoptionNotice, MarkdownContent, Animal, Rule, Image
|
||||
from .forms import AdoptionNoticeForm, AnimalForm
|
||||
|
||||
|
||||
@ -53,6 +53,12 @@ def add_animal_to_adoption(request, adoption_notice_id):
|
||||
form.cleaned_data["adoption_notice_id"] = adoption_notice_id
|
||||
instance = form.save(commit=False)
|
||||
instance.adoption_notice_id = adoption_notice_id
|
||||
|
||||
if 'image' in request.FILES:
|
||||
image_instance = Image(image=request.FILES['image'])
|
||||
image_instance.save()
|
||||
instance.photos.add(image_instance)
|
||||
|
||||
instance.save()
|
||||
if "button_add_another_animal" in request.POST:
|
||||
return redirect(reverse("add-animal-to-adoption", args=[str(adoption_notice_id)]))
|
||||
|
@ -105,6 +105,9 @@ print(f"Allowed hosts: {ALLOWED_HOSTS}")
|
||||
# This is adjusted based on this guide https://testdriven.io/blog/django-docker-traefik/
|
||||
# compression and caching support (see https://whitenoise.readthedocs.io/en/latest/#quickstart-for-django-apps)
|
||||
STORAGES = {
|
||||
"default": {
|
||||
"BACKEND": "django.core.files.storage.FileSystemStorage",
|
||||
},
|
||||
"staticfiles": {
|
||||
"BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage",
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user