我正在開發一個社交平臺,目前正在編寫用戶帖子的類似功能。但是,我似乎無法使其工作。這是我的Models.py:像Django中的功能
class Post(models.Model):
user = models.ForeignKey(User)
posted = models.DateTimeField(auto_now_add=True)
content = models.CharField(max_length=150)
picturefile = models.ImageField(upload_to="post_content", blank=True)
class Like(models.Model):
user = models.ForeignKey(User, null=True)
post = models.ForeignKey(Post, null=True)
我通過我的網址爲 'POST_ID' 通過帖子ID,然後在我的觀點:
def liking(request, post_id):
newlike = Like.objects.create()
newlike.post = post_id
newlike.user = request.user
newlike.save()
return redirect(reverse('dashboard'))
但是,它返回以下錯誤:
Cannot assign "'47'": "Like.post" must be a "Post" instance.
有沒有人知道我失蹤或做錯了什麼?
爲什麼我在像模型迴歸「後」用戶名?而不是內容? – Acework
你的意思是像'print newlike.post'返回用戶名?這實際上是在'Post'模型中用'__unicode __()'(如果使用python 2)或'__str __()'(用於python 3)方法定義的。當你在那個對象上執行'print'的時候,這個方法應該返回實際的字符串表示。 –
不,我的意思是模型對象本身(如:post = models.ForeignKey(Post,null = True))。當我進入數據庫時,我想看看誰(在這種情況下是用戶對象)喜歡哪個帖子(帖子對象)。用戶對象正確地返回誰的用戶名,但後對象也返回一個用戶名;來自帖子所有者的用戶名,而不是帖子的內容本身。 – Acework