Updating and Deleting Articles

Kategori: Python / Django , 27 Eylül 2019 , JanFranco


Yazılarımızı güncelleyebilmek için articles klasöründe bulunan urls.py dosyasını açalım ve aşağıdaki path'i ekleyelim:


path('update/<int:id>', views.updateArticle, name = "update"),
Daha sonra articles klasöründeki views.py dosyasını açalım ve aşağıdaki fonksiyonu ekleyelim:


def updateArticle(request, id):
    article = get_object_or_404(Article, id=id)
    form = forms.ArticleForm(request.POST or None, request.FILES or None, instance=article)
    if form.is_valid():
        article = form.save(commit=False)
        article.author = request.user
        article.save()

        messages.success(request, "Yazı güncellendi!")
        return redirect("/articles/dashboard")
    return render(request, "update.html", {"form": form})
Son olarak update.html dosyasını oluşturalım:


{% extends "layout.html" %}

{% block body %}
{% load crispy_forms_tags %}
    <div class="row">
        <div class="col-md-6 offset-md-3">
            <h3>Yazı Güncelle</h3>
            <hr>
            <form method="post" enctype="multipart/form-data">
                {% csrf_token %}
                {{form.media}}
                {{form|crispy}}
                <br>
                <button type="submit" class="btn btn-danger">Yazı Güncelle</button>
            </form>
        </div>
    </div>
{% endblock body %}
articles klasöründeki urls.py dosyasını tekrar açalım ve aşağıdaki path'i ekleyelim:


path('delete/<int:id>', views.deleteArticle, name = "delete"),
articles klasöründeki views.py dosyasını açalım ve aşağıdaki fonksiyonu ekleyelim:


def deleteArticle(request, id):
    article = get_object_or_404(Article, id = id)
    article.delete()
    messages.success(request, "Yazı silindi!")
    return redirect("article:dashboard")


Sonraki Yazı: Articles Page, Adding Code Snippet
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın