Я создаю сайт-блог. Я хочу создать поле списка в модели пользователя или модели профиля для хранения всех постов, созданных пользователем.

** У меня есть две модели, и я создаю блоггерский сайт для своего начинающего проекта на django. Мне нужно поле со списком, в котором я могу хранить объекты Post, которые являются постами, созданными пользователем. Я хочу отслеживать все посты, созданные пользователем. Я не могу найти способ создания поля со списком. Я даже пытался создать свой собственный класс списка, но он почему-то не работает .

**

from django.db import models
from django.contrib.auth.models import User
from PIL import Image
from blog.models import Post


# I created this PostList Class to access the list field but it doesn't work .
class PostList :
    def __init__(self , l = []): 
        self.l = l

    def __len__(self): 
        return len(self.l)
    
    def delete(self,post):
        self.l.remove(post)
        
    def insert(self, post) : 
        self.l.append(post)
        
    def print_list(self) : 
        return self.l


# This is my Profile Model

class Profile(models.Model) :
    user = models.OneToOneField(User , on_delete = models.CASCADE)
    image = models.ImageField(default= 'default.png' , upload_to = "profile_pics")
    """
    user_posts = PostList()
    # this actully doesn't work. 
    user_posts = []
    # this also didn't work . 

    i want to create list field to store the posts user create . This is the Profile model .
    whenever a post is created by the user. the list in here saves the post created by the user. 
    """

    def __str__(self): 
        return "{} Profile".format(self.user.username)
    
    def save(self, *args, **kwargs): 
        super().save(*args, **kwargs)
        
        img = Image.open(self.image.path) 
        
        if img.height > 125 or img.width >125 : 
            output_size = (150 , 150)
            img.thumbnail(output_size)
            img.save(self.image.path)
            

Это моя модель Post. Как и где я должен создать список, чтобы я мог отслеживать посты, созданные пользователем.

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse

class Post(models.Model) : 
    title = models.CharField(max_length = 100)
    content = models.TextField()
    date_posted = models.DateTimeField(default = timezone.now)
    author = models.ForeignKey(User, on_delete = models.CASCADE)
    
    
    def __str__(self) : 
        return self.title

    def get_absolute_url(self) : 
        return  reverse("post-detail" , kwargs = {"pk" : self.pk } ) 

Вернуться на верх