Django动态网址问题-以10为底的int()无效文字:

问题描述 投票:0回答:1

我正在尝试创建一个动态URL,以在当前用户尝试转到其个人帖子页面时将其名称添加到路径中。在个人帖子页面中,我过滤了所有帖子,并仅显示了当前用户的帖子列表。我也只想在网址中添加他的名字。而已。我尝试了很多事情,但失败了。我感觉问题在于作者引用了Django的内置用户模型。

我的代码:

url:

    path('<username>/', views.personalposts, name='personalposts'),

视图:

在查看之前:

def personalposts(request, username):
    items = Post.objects.filter(author=request.user)

    return render(request, 'TheApp/personalposts.html', {'items':items})

我仍然想显示这样的个人帖子。它有效,但没有动态网址。

现在我将其更改为:

def personalposts(request, username):
    items = Post.objects.get(author=username)

    return render(request, 'TheApp/personalposts.html', {'items':items})

模型:

class Post(models.Model):
    author = models.ForeignKey(User, on_delete=models.PROTECT)
    #כדי שרק משתמשים רשומים יוכלו ליצור פוסט
    title = models.CharField(max_length=200)
    text = models.TextField()
    create_date = models.DateTimeField(default=timezone.now)
    post_views = models.IntegerField(default=0)
django url dynamic-url
1个回答
0
投票

输入

items = Post.objects.get(author=username)

您检查作者字段是否与用户名相同,您可以像这样查找FK字段:

items = Post.objects.get(author__username=username)

但是请注意,如果您有多位作者使用相同的用户名,它将中断。

类似于:Django - filtering on foreign key properties

© www.soinside.com 2019 - 2024. All rights reserved.