我有三张桌子。 Tag
,QueryStringTag
和QueryString
。 QueryStringTag
第三个表,用于连接Tag
和QueryString
,并允许一个Tag
与多个QueryString
相关联,反之亦然。它包含两个外键。一个指向Tag
,一个指向QueryString
。
流程是这样的。创建QueryString
对象并将其保存在数据库中。在此之后,创建了4 Tags
。我想将这些拍摄与特定的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)
有人能指出我正确的方向吗?
答案 0 :(得分:1)
我建议在StackOverflow上搜索一下。我找到了两个可能相关的答案,搜索“python django很多很多”:
例如: Way to allow for duplicate many-to-many entries in Python/Django