Сделал свою админку где можно добавлять посты в блоге через формы, пытаюсь сделать страницу где можно редактировать пост, делаю так:
Ссылка на странице редактирования
<a class="btn btn-default" href="{% url 'note_edit' pk=note.pk %}">Редактировать</a>
url:
url(r'^post/(?P<pk>\d+)/edit/$', views.note_edit, name='note_edit'),
view:
def note_edit(request, pk):
note = get_object_or_404(Note, pk=pk)
if request.method == "POST":
form = NoteForm(request.POST, instance=note)
if form.is_valid():
note = form.save(commit=False)
note.published_date = timezone.now()
note.save()
else:
form = NoteForm(instance=note)
return render(request, 'admin', locals())
forms:
from django import forms
from .models import Note
class NoteForm(forms.ModelForm):
class Meta:
model = Note
fields = ('title', 'body', 'image')
шаблон admin:
<form method="POST" enctype="multipart/form-data">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class=" btn btn-default">Save</button>
</form>
models:
from django.db import models
from django.utils import timezone
class Note(models.Model):
title = models.CharField(max_length = 50)
body = models.TextField()
image = models.ImageField(null=True, blank=True, upload_to="images/")
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return "%s" % self.title
class Meta:
verbose_name = 'Запись'
verbose_name_plural = 'Записи'
При переходе на post/n/edit
выдает ошибку
spoilerIsADirectoryError at /post/1/edit/
Делаю по типу
https://tutorial.djangogirls.org/ru/django_forms/