如何解决Django 查询:如何通过帐户所有者创建的博客文章查询帐户页面?又名链接从一个到另一个
Django 查询:如何通过帐户所有者创建的博客文章查询帐户页面?又名链接从一个到另一个。所以我有一个账户模型和一个博客文章模型,以作者作为外键。我不确定如何查询帐户。谁能建议这通常是如何完成的?因为我尝试执行 user_id=request.user.id
但这会将我带到我自己的帐户视图。谢谢!
html
<a class="dropdown-item" href="{% url 'account:view' %}">{{blog_post.author}}</a>
views.py
def detail_blog_view(request,slug):
context = {}
blog_post = get_object_or_404(BlogPost,slug=slug)
context['blog_post'] = blog_post
return render(request,'HomeFeed/detail_blog.html',context)
用于博客的 urls.py
path('<slug>/detail/',detail_blog_view,name= "detail"),
帐户的 urls.py:
path('<user_id>/',account_view,name="view"),
models.py
class Account(AbstractBaseUser):
email = models.EmailField(verbose_name="email",max_length=60,unique=True)
username = models.CharField(max_length=30,unique=True)
class BlogPost(models.Model):
title = models.CharField(max_length=50,null=False,blank=False)
body = models.TextField(max_length=5000,blank=False)
slug = models.SlugField(blank=True,unique=True)
author = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
解决方法
您实际上不需要查询 author
,您只需从 foreign key
对象中获取 BlogPost
值,如下所示:
views.py
def post(request,pk):
post = BlogPost.objects.get(pk=pk)
author = post.author
return render(request,'post.html',{'post': post,'author': author})
然后在模板中显示:
post.html
<a href="{% url 'view' author.pk %}">{{ author }}</a>
(or you can use {{ post.author }} here aswell) says:
{{ post.title }} | {{ post.body }}
编辑
在您的用户配置文件路径中,您实际上需要指定参数类型,例如:
path('<int:user_id>/',account_view,name="view"),# btw dont call your views 'view',name should describe what the view actually does or shows
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。