Compare commits

..

2 commits

Author SHA1 Message Date
Benjamin 6d03a8db2f Add img field to version 2023-03-24 14:21:30 +01:00
Benjamin 1512cae857 Add settings for file upload 2023-03-24 14:21:14 +01:00
7 changed files with 13 additions and 4 deletions

View file

@ -38,7 +38,7 @@ class VersionForm(ModelForm):
class Meta: class Meta:
model = Version model = Version
fields = ['label', 'slug', 'body', 'author'] fields = ['label', 'slug', 'body', 'author', 'img']
def clean_slug(self): def clean_slug(self):
slug = self.cleaned_data['slug'] slug = self.cleaned_data['slug']

View file

@ -38,6 +38,7 @@ class Version(models.Model):
user = models.ForeignKey(User, on_delete=models.PROTECT, null=False, blank=False) user = models.ForeignKey(User, on_delete=models.PROTECT, null=False, blank=False)
author = models.CharField(max_length=30, blank=True) author = models.CharField(max_length=30, blank=True)
recipe = models.ForeignKey(Recipe, on_delete=models.PROTECT, null=False, blank=False, related_name='versions') recipe = models.ForeignKey(Recipe, on_delete=models.PROTECT, null=False, blank=False, related_name='versions')
img = models.ImageField(null=True, blank=True)
def __str__(self) -> str: def __str__(self) -> str:
return self.recipe.title + ' - ' + self.label return self.recipe.title + ' - ' + self.label

View file

@ -19,7 +19,7 @@
{% endcomment %} {% endcomment %}
{% block title %}{{ title }}{% endblock %} {% block title %}{{ title }}{% endblock %}
{% block main %} {% block main %}
<form action="" method="post" id="version-form"> <form action="" method="post" id="version-form" enctype="multipart/form-data">
{%csrf_token %} {%csrf_token %}
{% if recipe_form %} {% if recipe_form %}
{{ recipe_form.as_div }} {{ recipe_form.as_div }}

View file

@ -121,7 +121,7 @@ def add_version(request, slug):
version_initial = {} version_initial = {}
if request.method == 'POST': if request.method == 'POST':
version_form = VersionForm(request.POST, prefix=VERSION_FORM_PREFIX, initial=version_initial, author_placeholder=get_name_of_user(request.user)) version_form = VersionForm(request.POST, request.FILES, prefix=VERSION_FORM_PREFIX, initial=version_initial, author_placeholder=get_name_of_user(request.user))
ingredients_formset = IngredientFormSet(request.POST, queryset=Ingredient.objects.none(), prefix=INGREDIENTS_FORMSET_PREFIX) ingredients_formset = IngredientFormSet(request.POST, queryset=Ingredient.objects.none(), prefix=INGREDIENTS_FORMSET_PREFIX)
version_form.recipe_id = recipe.id # type: ignore version_form.recipe_id = recipe.id # type: ignore
@ -146,7 +146,7 @@ def edit_version(request, slug_recipe, slug_version):
return redirect(f"/accounts/login/?next={request.path}") return redirect(f"/accounts/login/?next={request.path}")
if request.method == 'POST': if request.method == 'POST':
version_form = VersionForm(request.POST, prefix=VERSION_FORM_PREFIX, instance=version, author_placeholder=get_name_of_user(request.user)) version_form = VersionForm(request.POST, request.FILES, prefix=VERSION_FORM_PREFIX, instance=version, author_placeholder=get_name_of_user(request.user))
ingredients_formset = IngredientFormSet(request.POST, queryset=version.ingredients.all(), prefix=INGREDIENTS_FORMSET_PREFIX) # type: ignore ingredients_formset = IngredientFormSet(request.POST, queryset=version.ingredients.all(), prefix=INGREDIENTS_FORMSET_PREFIX) # type: ignore
version_form.recipe_id = recipe.id # type: ignore version_form.recipe_id = recipe.id # type: ignore

View file

@ -1,4 +1,5 @@
asgiref==3.5.2 asgiref==3.5.2
Django==4.1.4 Django==4.1.4
Pillow==9.4.0
sqlparse==0.4.3 sqlparse==0.4.3
tzdata==2022.7 tzdata==2022.7

View file

@ -143,3 +143,6 @@ STATIC_URL = 'static/'
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field # https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = 'media/'

View file

@ -34,6 +34,8 @@ Including another URLconf
""" """
from django.contrib import admin from django.contrib import admin
from django.urls import path, include from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from . import views from . import views
urlpatterns = [ urlpatterns = [
@ -44,3 +46,5 @@ urlpatterns = [
path('accounts/profile/', views.profile, name='profile'), path('accounts/profile/', views.profile, name='profile'),
path('accounts/', include('django.contrib.auth.urls')), path('accounts/', include('django.contrib.auth.urls')),
] ]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)