Я создаю сайт-блог. Я хочу создать поле списка в модели пользователя или модели профиля для хранения всех постов, созданных пользователем.
** У меня есть две модели, и я создаю блоггерский сайт для своего начинающего проекта на 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 } )