如何在Django(管理网站)中编辑多对多关系

时间:2020-06-03 10:34:12

标签: python django model django-views admin

我需要在博客文章中添加标签。每个标签都可以在许多帖子上使用,并且帖子可以包含多个标签。

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

model.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

Current Admin Site

我知道我需要在博客应用程序中编辑admin.py文件,但到目前为止,我尝试的所有操作均无效。这些管理员视图是否有配方?

我想实现类似this(第一个答案-过滤视图)的功能。

0 个答案:

没有答案