gpt4 book ai didi

python - Django 模型字段需要在具有共享抽象基类的多个模型中是唯一的

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:46 25 4
gpt4 key购买 nike

假设我想要多种类型的文章,所有这些文章都可以在 site.com/news/article-slug 上访问(因此,根据article-slug,它可以是视频文章、文本文章、图像 slider 文章……)

我有这些模型:

class Article(models.Model):
class Meta:
abstract = True
slug = models.SlugField(max_length=60, unique=True)

class TextArticle(Article):
content = models.TextField()

class VideoArticle(Article):
video = models.ForeignKey(Video)

但问题是我可以使用相同的 slug 创建 TextArticle 和 VideoArticle。

是否有一种简单的方法来修复它,以便如果已经存在具有特定 slug 的 VideoArticle,则不能添加具有相同 slug 的 TextArticle(反之亦然)?

如果没有简单的解决办法:

  • 我应该通过数据库查询进行自定义表单验证吗?
  • 我不应该使基类抽象吗?
  • 还有其他想法吗?

提前致谢!

最佳答案

听起来您实际上并不想要一个抽象类,而是希望 Article 类成为所有子类引用的表:

https://docs.djangoproject.com/en/1.10/topics/db/models/#multi-table-inheritance

关于python - Django 模型字段需要在具有共享抽象基类的多个模型中是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43160995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com