首页 > 解决方案 > 如何在 Django 中编辑多对多关系(管理站点)

问题描述

我需要在我的博客文章中添加标签。每个标签应该在许多帖子上可用,并且帖子可以有多个标签。

如何更改管理站点,以便可以向帖子添加多个(现有)标签?标准视图只允许我通过创建新视图来添加。

模型.py

# blog post tags
class Tag(models.Model):
    name = models.CharField(max_length=20)
    slug = models.SlugField(max_length=40, unique=True)
    date_created = models.DateTimeField(default=timezone.now)

    class Meta:
        ordering = ['name']

    def __str__(self):
        return self.name

# blog posts
class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    last_modified = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE) # 1 author per post
    tags = models.ManyToManyField(Tag, related_name='tags') # n tags per m posts

    class Meta:
        ordering = ['title']

    def __str__(self):
        return self.title

当前管理站点

我知道我需要在我的博客应用程序中编辑我的 admin.py 文件,但到目前为止我尝试的一切都不起作用。这些管理视图是否有秘诀?

我想实现这样的目标(第一个答案 - 过滤视图)。

标签: pythondjangomodeldjango-viewsadmin

解决方案


推荐阅读