১০.৭ : এডিট পোস্ট এন্ড লগ আউট

আজকে আসো ইউজার যে ব্লগ গুলা তৈরি করেছে সেগুলা তার প্রোফাইল এ যেনো শো করে সেই সাথে ব্লগ গুলা তে যেনো সে এডিট বা ডিলিট করতে পারে।

সেই কাজ টা করার জন্যে ইউজার এর প্রোফাইল ভিউ তে আমরা logged in ইউজার এর করা পোস্ট গুলা কে ফিল্টার করে আনবো।এখানেও আমরা একটা রেস্ট্রিকশন দিবো যে প্রোফাইল পেজে এ কেবল logged in ইউজার ই আসতে পারে সো সেটার জন্যে @login_required decorator ইউজ করবো।

@login_required
def profile(request):
    data = Post.objects.filter(author = request.user)
    return render(request, 'profile.html', {'data' : data})
@login_required
def edit_post(request, id):
    post = models.Post.objects.get(pk=id) 
    post_form = forms.PostForm(instance=post)
    # print(post.title)
    if request.method == 'POST': # user post request koreche
        post_form = forms.PostForm(request.POST, instance=post) # user er post request data ekhane capture korlam
        if post_form.is_valid(): # post kora data gula amra valid kina check kortechi
            post_form.instance.author = request.user
            post_form.save() # jodi data valid hoy taile database e save korbo
            return redirect('homepage') # sob thik thakle take add author ei url e pathiye dibo
    
    return render(request, 'add_post.html', {'form' : post_form})

@login_required
def delete_post(request, id):
    post = models.Post.objects.get(pk=id) 
    post.delete()
    return redirect('homepage')

এখন আমরা ইউজার লগআউট এর কাজ টা করে ফেলতে পারি এখনি। সেটার জন্যে কি করতে হবে মনে আছে তো!!!

ঠিক চিন্তা করছো, জাস্ট লগ আউট ফাংশন টা কল করলেই হয়ে যাবে।

def user_logout(request):
    logout(request)
    return redirect('user_login')

Last updated