Как вставить результаты queryset в таблицу с внешним ключом в django

У меня есть 2 таблицы: RawTweet и PertinentTweet, у PertinentTweet есть внешний ключ, который ссылается на tweetID в Rawtweet. И я хочу выбрать некоторые твиты в RawTweet и сохранить их в PertinentTweet. Для этого я использую queryset.

Мои 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 где я использую queryset:

        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. И я хотел бы сохранить связь с моими двумя таблицами. Спасибо за помощь.

1 ответ

  1. Это позволит избежать ошибки:

    goodTweet.rawTweetID = item
    

    Хотя, я не уверен, что понимаю ваш вопрос.

    В коде potentialTweetsэто действительно набор запросов RawTweetобъектов.
    И item.tweetIDявляется всего лишь полем RawTweet.