我正在尝试为django找到一个很好的教程,如何在模型中创建多个标签。
例如:
class Tag(models.Model):
name = models.CharField()
class Sample(models.Model):
name = models.CharField()
urlA = models.CharField()
urlB = models.CharField()
tagA = models.ManyToManyField(Tag)
tagB = models.ManyToManyField(Tag)
我想将标签显示为输入字段,并用","分隔并在保存方法中拆分。所以我想看到 2 个标签字段的 2 个不同输入。
如果你有一个简单的方法来做或知道一个好的教程,请告诉我! :)
谢谢你们!
编辑:您不必过度放置实际的表格集。您可以生成要设置视图的任何查询集。您的 url conf 可以设置为显示来自多个 url 的详细信息视图。如果我仍然不明白,那么请完善您的问题。
对于拥有多个任何东西标签类别,您的 m21 或 m2m。因此,当您创建标签时,您可以逐个添加它们。你熟悉Django ORM提供的一些管理功能吗?请仔细阅读文档。你解决这个问题的方法一点也不合理。不是想用错误的方式摩擦你,我不是天才。你会做这样的事情。
class Tag(models.Model):
title = models.CharField(max_length=250, blank=True)
slug = models.SlugField(blank=True
class Meta:
verbose_name = "tag"
verbose_name_plural = "tags"
ordering = ['title']
@models.permalink
def get_absolute_url(self):
return "/tags/%s/" % self.slug
class Entry(models.Model):
title = models.CharField(max_length=250, blank=True)
body = models.TextField()
tags = models.ManyToMany('Tag')
slug = models.SlugField()
@models.permalink
def get_absolute_url(self):
return "/blog/%s/" % self.slug
对于EntryAdmin和TagAdmin模型,还有更多的代码要做,还有许多其他事情可以做。我不确定你想用它实现什么,如果你能更清楚的话?谢谢,以上是我如何处理它的粗略说明。
我从这里找到了一个解决方案:
https://dev.to/thepylot/how-to-add-tags-to-your-models-in-django-django-packages-series-1-3704
Django-taggit 对于标记非常有用。
是的
一个可重用的应用程序,主要为您提供一个标签模型,以及一个管理器,用于轻松地向任何模型添加标签。
pip install django-taggit
之后,打开 settings.py 并编辑已安装的应用程序部分:
INSTALLED_APPS = [ ... 'taggit' ]
之后,编辑模型并添加如下所示的标签:
tags = TaggableManager()
可标记管理器将自动显示为模型窗体或管理员中的字段。
文档:https://django-taggit.readthedocs.io/en/latest/index.html