我有2个表:RawTweet和PertinentTweet,PertinentTweet有一个引用Rawtweet中的tweetID的外键。我想在RawTweet中选择一些推文并将它们存储在PertinentTweet中。我使用queryset来做到这一点。如何在包含外键的表中插入查询集结果django
我的2类:
class RawTweet(models.Model):
tweetID = models.BigIntegerField(primary_key=True)
date = models.CharField(max_length = 100, blank=True)
text = models.TextField(max_length = 200, blank=True)
pseudo = models.CharField(max_length = 100, blank=True)
userLocation = models.CharField(max_length = 100, blank=True)
tweetLocation = models.CharField(max_length = 100, blank=True)
images = models.ImageField(upload_to = 'images/', blank=True)
isretweeted = models.NullBooleanField()
hashtags = models.CharField(max_length = 100, blank=True)
score=models.PositiveSmallIntegerField(default=0)
def __str__(self):
return self.pseudo+' le ' + self.date
def getUrl(self):
return ("https://twitter.com/{}/status/{}".format(self.pseudo,self.tweetID))
class PertinentTweet(models.Model):
rawTweetID=models.ForeignKey(RawTweet, on_delete=models.CASCADE, primary_key=True, default=0)
这里我views.py的一部分,其中我使用的查询集:
potentialTweets=RawTweet.objects.filter(score__gte=7)
for item in potentialTweets:
goodTweet = PertinentTweet()
goodTweet.rawTweetID = item.tweetID
goodTweet.save()
当我的午餐我的应用我有此错误:
ValueError at/ 无法指定“?”:“PertinentTweet.rawTweetID”必须是“RawTweet”实例。
它看起来像queryset对象“potentialTweets”不是一个RawTweet对象的列表......我知道这一定是因为我在PertinentTweet中定义一个外键来引用RawTweet中的推文。我想保留与我的两张桌子的链接。感谢您的帮助。
谢谢你的快速答案!是的potentialTweets包含RawTweet对象,item.tweetID是RawTweet的一个字段。我只想在字段rawTweetID(PertinentTweet的)中保留字段tweetID(的RawTweet),这就是为什么我把goodTweet.rawTweetID = item.tweetID。我试图使用你的建议,如果它有效,我会说你。 Thks – aicha
它不起作用。我认为如果你说goodTweet.rawTweetID = item,这意味着将所有的项目存储在单个字段中。但我想只保留tweetID字段。当我将goodTweet.rawTweetID = item.tweetID改为goodTweet.rawTweetID = item to goodTweet.rawTweetID = item如ypu建议 – aicha
如果你只想保留'item.tweetID',那么你不需要一个ForeignKey来'RawTweet' 。你可以在'PertinentTweet'中使用BigIntegerField。 – JoseKilo