亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字段“id”需要一個數字但得到了“natsu”django

字段“id”需要一個數字但得到了“natsu”django

慕碼人8056858 2023-02-07 14:24:37
我想創建一個 user_posts 視圖,其中包含與特定用戶相關的所有帖子讓我們說有/有用戶“Natsu”寫的博客帖子然后登錄用戶讓我們說“Testuser”將能夠看到所有帖子由該用戶即用戶“Natsu”的所有帖子。blog models.pyclass Post(models.Model):  title = models.CharField(max_length=250)  slug = models.SlugField(max_length=250, unique_for_date='publish')  author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')  body = models.TextField()user models.pyclass Profile(models.Model):  user = models.OneToOneField(User, on_delete=models.CASCADE)  image = models.ImageField(upload_to='profile_pic', default='default.jpg')  def __str__(self):    return f'{ self.user.username } Profile'views.pydef user_posts(request, username):  posts = Post.objects.filter(author=username)  return render(request, 'blog/user_posts.html', {'posts':posts})user_posts.html{% for post in posts %}      <a href="{% url 'user-posts' post.author.username %}" class="mr-2">{{ post.author }}</a>      <h2><a href="{% url 'post-detail' post.pk %}">{{ post.title }}</a></h2>      {{ post.body|truncatewords:30 }} {% endfor %}urls.py  path('user/<str:username>/', views.user_posts, name='user-posts'),但是當我訪問那個 url 時它顯示錯誤Field 'id' expected a number but got 'admin'.
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

authoronPost將是User表的主鍵,它是一個整數(除非從默認值修改)而不是usernameusername您要么需要首先查找,User要么使用其他一些 Django“魔法”。也許嘗試其中之一(我認為他們都在后端做同樣的事情):

posts = Post.objects.filter(author=User.object.filter(username=username)[:1])

或者

posts = Post.objects.filter(author__username=username)

(我也沒有測試......所以請隨意編輯這個答案或評論,如果兩者都不起作用)


查看完整回答
反對 回復 2023-02-07
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')

當您為 auhor 字段使用外鍵時,我認為您不能通過 posts = Post.objects.filter(author=username). 你能試試filter(author=user.id)嗎?


查看完整回答
反對 回復 2023-02-07
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

posts = Post.objects.filter(author=User.object.get(username=username))

或者

  posts = Post.objects.filter(author__username=username)


查看完整回答
反對 回復 2023-02-07
  • 3 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號