python - 将标签分配给Django ORM多对多关系中的对象

标签 python django orm foreign-keys

我有三个表。 标记QueryStringTagQueryStringQueryStringTag 创建的第三个表,用于连接 TagQueryString 并允许一个 Tag 与多个 相关联code>QueryString 的,反之亦然。它包含两个外键。一个指向 Tag,一个指向 QueryString

流程是这样的。 QueryString 对象被创建并保存在数据库中。在此之后,将创建 4 个 标签。我想将这些拍摄与特定的 QueryString 对象相关联。

到目前为止,我的所有尝试都失败了。文档没有提供太多帮助,我已经尝试了几乎所有我能想到的方法。

这是我的模型...

class QueryString(BaseObject): 

    server_id = models.IntegerField()
    schema = models.CharField(max_length=255, blank=True)
    query = models.CharField(max_length=60000) 
    variables = models.TextField(blank=True)
    created_by = models.ForeignKey(User, related_name='queries_created')
    updated_by = models.ForeignKey(User, related_name='queries_last_edited')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField()
    touched_by = models.CharField(max_length=1000)
    config = models.TextField(blank=True)
    runs_started = models.IntegerField(default=0)
    runs_completed = models.IntegerField(default=0)
    runs_completed_duration = models.IntegerField(default=0) # total number of seconds spent running this query to completion
    formats = "pretty_html html json prettyjson csv excel tableau".split()

class Tag(models.Model):
    name = models.CharField(max_length=100)

class QueryStringTab(models.Model):
    tag = models.ForeignKey(Tag, related_name='querystringtag')
    querystring = models.ForeignKey(QueryString, related_name='querystringtag')

这是我的观点...
(请记住,query 是唯一的 QueryString 对象,我试图将其与下面的四个标签相关联)

tags = ['one', 'two', 'three', 'four']

for tag in tags:
    newtag = Tag(name=tag)
    newtag.save()
    query.querystringtab.tag(newtag.pk)

谁能指出我正确的方向?

最佳答案

我建议在 StackOverflow 上搜索此处。我在搜索“python django many to many”时找到了两个可能相关的答案:

例如: Way to allow for duplicate many-to-many entries in Python/Django

关于python - 将标签分配给Django ORM多对多关系中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36925212/

相关文章:

python - Python中的多元正态密度?

django - 如何在 Django 中进行可定制的用户调查

php - Doctrine ORM 和具有抽象类策略的工厂

php - 比较两个不同表中的两个不同列,并使用 laravel 5.4 中的 orm 关系显示任一表中其他列的数据

Python Zipline 离线测试

python - 使用 py2exe 时遇到问题

python - 使用windows用python打开word文档

python - 使用请求检查损坏的链接后,Django 网站加载缓慢

python - Django 每天汇总记录数