我想创建这样的模型实例:
new_tweet = Tweet.objects.create(text = tweet_object.text, date = tweet_object.date, username = tweet_object.username, retweet = tweet_object.retweet.all(), is_ret = True)
在此之前一切顺利:retweet = tweet_object.retweet.all()
。它返回此错误:'retweet' is an invalid keyword argument for this function
这是一个ManyToMany字段。那么如何在创建新模型实例时填写此字段?
顺便说一下,tweet_object.retweet.all()
由许多retweet
个对象组成。
编辑:
型号:
class Tweet(models.Model):
text = models.CharField(max_length=140)
date = models.DateTimeField(auto_now_add=True)
username = models.CharField(max_length=140)
favourite = models.ManyToManyField(Favourite)
retweet = models.ManyToManyField(Retweet)
replies = models.ManyToManyField('Tweet')
is_ret = models.BooleanField(default=False)
def __unicode__(self):
return self.username
和tweet_object,这只是另一条推文:
tweet_object = Tweet.objects.get(id=tweet_id)
答案 0 :(得分:1)
我认为你应该首先创建Tweet对象,然后你可以创建与转推的关系。
有关您可以在此处找到的信息的更多信息:https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/
非常简单:
tweet_object = Tweet.objects.get(id=tweet_id)
new_tweet = Tweet.objects.create(text = tweet_object.text, date = tweet_object.date, username = tweet_object.username, is_ret = True)
for retweet in tweet_object.retweet.all():
new_tweet.retweet.add(retweet)
new_tweet.save()