Построение связи ManyToMany с пользовательской моделью - PullRequest
0 голосов
/ 14 марта 2019

У меня есть блог-проект.Я создал пользовательскую модель и сделал несколько страниц профиля для своего проекта.Я хочу создать отношения M2M между сообщениями пользователя и пользователем для показа на странице пользователя.Например, если я редактирую профиль пользователя на панели администратора, я должен выбрать сообщение этого пользователя в списке сообщений.Но зачем мне это делать?Они уже связаны, не так ли?Как мне следует делать отношения?Если я могу сделать это, я могу создать следующую систему, как Twitter.Потому что я думаю, что он использует отношения ManyToMany.Я использую SQLite3 для БД.Я прочитал много документации, но не смог понять.

post / models.py

class Post(models.Model):
    author = models.ForeignKey("auth.User", on_delete=models.CASCADE, verbose_name="Author")
    category = models.ForeignKey("Category", on_delete=models.CASCADE, verbose_name="Category Name")
    sub_category = models.ForeignKey("SubCategory", on_delete=models.CASCADE, verbose_name="Sub-Category Name",
                                     related_name="sub_category")
    title = models.CharField(max_length=50, verbose_name="Story Title")
    slug = models.SlugField(max_length=55, blank=True, null=True)
    description = RichTextField(max_length=100000, null=False)
    image = models.ImageField(upload_to='story_images/', null=True, blank=True,
                              default='')
    created_date = models.DateTimeField(auto_now_add=True, verbose_name="Created Date")
    verified_date = models.DateTimeField(auto_now_add=True, verbose_name="Verified Date")
    active_post = models.BooleanField(default=True)
    tag = models.ManyToManyField(SubCategory)

customUser / models.py

class Profile(models.Model):

user = models.OneToOneField(User, on_delete=models.CASCADE)
slug = models.SlugField(max_length=55, blank=True, null=True)
bio = models.TextField(max_length=500, blank=True)
location = models.CharField(max_length=30, blank=True)
country = models.CharField(max_length=30, blank=True)
birth_date = models.DateField(null=True, blank=True)
avatar = models.ImageField(upload_to='avatars/', null=True, blank=True)
job = models.CharField(max_length=30, blank=True)
skills = models.ManyToManyField(SubCategory)
post = models.ManyToManyField(Post, blank=True, related_name="Stories")
followers = models.ManyToManyField(User, blank=True, verbose_name="Followers", related_name="Followers")
following = models.ManyToManyField(User, blank=True, verbose_name="Following", related_name="Following")
...