微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django 查询:如何通过帐户所有者创建的博客文章查询帐户页面?又名链接从一个到另一个

如何解决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 举报,一经查实,本站将立刻删除。