১০.৬ : প্রোফাইল পেজ পার্ট ৩

আজকে আমাদের টার্গেট হচ্ছে একজন logged in ইউজার যেনো পোস্ট করতে পারে সেই ব্যাপার টা হ্যান্ডেল করে ফেলবো। তাইলে খেয়াল করে দেখো আমাদের post মডেল টা, সেখানে আমাদের user মডেল এর সাথে একটা বন্ডিং বা relationship আছে। সো আমরা যখন ব্লগ অ্যাড করতে যাবো তখন user এর যে পার্ট টা আছে সেখানে আমাদের currently logged in ইউজার কে বসাই দিবো।

from django.db import models
from categories.models import Category
from django.contrib.auth.models import User
# Create your models here.
class Post(models.Model):
    title = models.CharField(max_length=50)
    content = models.TextField()
    category = models.ManyToManyField(Category) # ekta post multiple categorir moddhe thakte pare abar ekta categorir moddhe multiple post thakte pare
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    
    def __str__(self):
        return self.title 

অ্যাড পোস্ট এও আমরা সেম কাজ করবো যে logged in ইউজার ছাড়া অন্য কেউ যেনো add পোস্ট এর লিঙ্ক এ যেতে না পারে। সেজন্যে @login_required এই ডেকরেটর টা অ্যাড করে দিবো।

@login_required
def add_post(request):
    if request.method == 'POST': # user post request koreche
        post_form = forms.PostForm(request.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.cleaned_data['author'] = request.user
            post_form.instance.author = request.user
            post_form.save() # jodi data valid hoy taile database e save korbo
            return redirect('add_post') # sob thik thakle take add author ei url e pathiye dibo
    
    else: # user normally website e gele blank form pabe
        post_form = forms.PostForm()
    return render(request, 'add_post.html', {'form' : post_form})

Last updated