Django按标签添加到特定测试的顺序显示标签

尼拉杰·查普拉

我对Django比较陌生。

我有以下两种模式。

class Tag(models.Model):
    tag = models.CharField(max_length=70, unique=True)
    class Meta:
        verbose_name = "Tag"
        verbose_name_plural = "Tags"
    def __unicode__(self):
        return self.tag     

class Test(models.Model):
    testname = models.CharField(max_length=240)
    tags = models.ManyToManyField("Tag", null=True, blank=True)
    category = models.ForeignKey("Category", null=True, blank=True)
    class Meta:
        verbose_name="Test"
        verbose_name_plural="Tests"

当我检索测试时,它按照标签ID的顺序给我特定测试的标签。我的要求是按标签添加到特定测试的顺序显示标签。

例如,我添加了带有标签java,.net,python的测试test1。然后使用django标签进行第二次测试test2。更新了test2以添加标签python,java。

现在,当我显示test2时,它显示的标签是-java,python,django。我希望它以链接顺序显示,例如django,python,java。[根据添加到特定测试的标签。]

我试图在其他订购文档中找到答案,但无法获得答案。

谢谢您的帮助。

鲁德拉

https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships中,您可以尝试如下操作:

class Tag(models.Model):
    tag = models.CharField(max_length=70, unique=True)
    class Meta:
        verbose_name = "Tag"
        verbose_name_plural = "Tags"
    def __unicode__(self):
        return self.tag     

class Test(models.Model):
    testname = models.CharField(max_length=240)
    tags = models.ManyToManyField(Tag, through='TagOrder')
    category = models.ForeignKey(Category, null=True, blank=True)
    class Meta:
        verbose_name="Test"
        verbose_name_plural="Tests"

class TagOrder(models.Model): #added extra model for adding an additional field 'added'
    test = models.ForeignKey(Test)
    tag = models.ForeignKey(Tag)
    added = models.DateTimeField()

在视图中:

category= Category.objects.get(id='id')
tag= Tag.objects.get_or_create(tag='some_tag')
test= Test.objects.get_or_create(testname= 'some test', category= category )
tagorder= TagOrder.objects.create(test= test, tag= tag, added= datetime.now())

tags= TagOrder.objects.filter(test=test).order_by('added').select_related('tag')

for t in tags:
   print t.tag.tag

PS:它是未经测试的代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django按标签添加到特定测试的顺序显示标签

来自分类Dev

在特定元素之后将新标签添加到<div>?

来自分类Dev

通过JQuery将内容添加到特定的HTML标签

来自分类Dev

在助手方法中将标签添加到特定文本

来自分类Dev

将django变量添加到<select>标签

来自分类Dev

将Floatformat添加到Django自定义标签

来自分类Dev

如何将标签添加到 Django 管理字段

来自分类Dev

按字母顺序添加到ObservableCollection

来自分类Dev

将标签添加到菜单条

来自分类Dev

将徽章添加到标签

来自分类Dev

将语言添加到脚本标签

来自分类Dev

自动将标签添加到HTML

来自分类Dev

将标签添加到ClickableSpan

来自分类Dev

将HTML标签添加到Highcharts

来自分类Dev

将模糊视图添加到标签?

来自分类Dev

将标签添加到SwiftUI TextField

来自分类Dev

将标签添加到ItemsControl

来自分类Dev

将标签添加到登录配置

来自分类Dev

将标签添加到Google图表

来自分类Dev

将标签添加到WebView的底部

来自分类Dev

将标签添加到操作栏

来自分类Dev

Woocommerce将类别添加到标签

来自分类Dev

选择随机节点并添加到标签

来自分类Dev

将 ScrollBar 添加到标签窗口

来自分类Dev

删除添加到 img 标签的参数

来自分类Dev

将主题标签添加到文件

来自分类Dev

AngularJS将标签动态添加到垂直标签表

来自分类Dev

AngularJS将新标签添加到boostrap标签列表

来自分类Dev

我想将标签显示添加到使用 woocommerce 短代码显示的产品列表中