Compare commits
3 commits
8cc2f903ee
...
a5519d1fb5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5519d1fb5 | ||
|
|
b8c3643c31 | ||
|
|
a415c45f3b |
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -61,6 +61,7 @@ cover/
|
|||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
/media/
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class VersionForm(ModelForm):
|
|||
|
||||
class Meta:
|
||||
model = Version
|
||||
fields = ['label', 'slug', 'body', 'author']
|
||||
fields = ['label', 'slug', 'body', 'author', 'img']
|
||||
|
||||
def clean_slug(self):
|
||||
slug = self.cleaned_data['slug']
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ from django.urls import reverse
|
|||
|
||||
class Recipe(models.Model):
|
||||
title = models.CharField(max_length=100, null=False, blank=False)
|
||||
slug = models.SlugField(unique=True)
|
||||
slug = models.SlugField(unique=True, allow_unicode=True) # type: ignore
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.title
|
||||
|
|
@ -33,11 +33,12 @@ class Recipe(models.Model):
|
|||
|
||||
class Version(models.Model):
|
||||
label = models.CharField(max_length=20, default='Original')
|
||||
slug = models.SlugField(max_length=20, default='original')
|
||||
slug = models.SlugField(max_length=20, default='original', allow_unicode=True) # type: ignore
|
||||
body = models.TextField(null=True, blank=True)
|
||||
user = models.ForeignKey(User, on_delete=models.PROTECT, null=False, blank=False)
|
||||
author = models.CharField(max_length=30, blank=True)
|
||||
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:
|
||||
return self.recipe.title + ' - ' + self.label
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
{% endcomment %}
|
||||
{% block title %}{{ title }}{% endblock %}
|
||||
{% block main %}
|
||||
<form action="" method="post" id="version-form">
|
||||
<form action="" method="post" id="version-form" enctype="multipart/form-data">
|
||||
{%csrf_token %}
|
||||
{% if recipe_form %}
|
||||
{{ recipe_form.as_div }}
|
||||
|
|
|
|||
|
|
@ -32,4 +32,5 @@
|
|||
{% endfor %}
|
||||
</ul>
|
||||
<p>{{ version.body }}</p>
|
||||
{% if version.img %}<img src="{{ version.img.url }}" alt="">{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ from . import views
|
|||
urlpatterns = [
|
||||
path('', views.recipes, name='recipes'),
|
||||
path('add-recipe/', views.add_recipe, name='add-recipe'),
|
||||
path('<slug:slug>/add-version/', views.add_version, name='add-version'),
|
||||
path('<slug:slug>/edit-recipe/', views.edit_recipe, name='edit-recipe'),
|
||||
path('<slug:slug_recipe>/<slug:slug_version>/edit-version/', views.edit_version, name='edit-version'),
|
||||
path('<slug:slug_recipe>/<slug:slug_version>/', views.version, name='version'),
|
||||
path('<slug:slug>/', views.recipe, name='recipe'),
|
||||
path('<str:slug>/add-version/', views.add_version, name='add-version'),
|
||||
path('<str:slug>/edit-recipe/', views.edit_recipe, name='edit-recipe'),
|
||||
path('<str:slug_recipe>/<str:slug_version>/edit-version/', views.edit_version, name='edit-version'),
|
||||
path('<str:slug_recipe>/<str:slug_version>/', views.version, name='version'),
|
||||
path('<str:slug>/', views.recipe, name='recipe'),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ def add_version(request, slug):
|
|||
version_initial = {}
|
||||
|
||||
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)
|
||||
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}")
|
||||
|
||||
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
|
||||
version_form.recipe_id = recipe.id # type: ignore
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue