我有2个模型。 Topic
和TopicPost
模型。如果用户正在创建帖子,则他们将输入代表其帖子的标签。这就是TopicPost
。它显示了与帖子相关的所有主题。我们首先检查标记是否在Topic
模型中,否则,我们创建一个新主题。然后,我们获取刚刚创建的主题的ID,并将其用于TopicPost
。这是我的模型的样子:
class Topic(models.Model):
name = models.CharField(max_length=25)
class TopicPost(models.Model):
topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
我知道我可以创建一个Topic
obj = Topic.objects.get_or_create(name=tag)
但是有没有办法将其结合起来并使用刚创建或检索到的主题的帖子ID和主题ID创建TopicPost
?像子查询之类的东西?
答案 0 :(得分:0)
对两个模型都应用 get_or_create()
逻辑,
topic, created = Topic.objects.get_or_create(name="some_name")
topic_post, _createdTopicPost.objects.get_or_create(topic=topic, post=post)