BotaniQ_Q
@BotaniQ_Q

Своя админка Django для изменения записей?

Сделал свою админку где можно добавлять посты в блоге через формы, пытаюсь сделать страницу где можно редактировать пост, делаю так:
Ссылка на странице редактирования
<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
выдает ошибку
spoiler
IsADirectoryError at /post/1/edit/

Делаю по типу https://tutorial.djangogirls.org/ru/django_forms/
  • Вопрос задан
  • 723 просмотра
Пригласить эксперта
Ответы на вопрос 1
BotaniQ_Q
@BotaniQ_Q Автор вопроса
Вопрос решен, я протупил, здесь простая опечатка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы