我正在开发一个图书库存项目,用户可以在其中添加他们的图书,其他人也可以看到它们。
我试图在主页上显示所有书籍,但只有所有者才能看到“编辑”和“删除”选项。其他人将看到“查看详细信息”选项。
当用户添加新书时,我使用 Django 的 get_user_model() 功能来获取该书的所有者:
...
class Book(models.Model):
title =models.CharField(max_length =255)
author =models.CharField(max_length =255)
genre =models.CharField(max_length=255)
date=models.DateTimeField(auto_now_add =True)
owner =models.ForeignKey(get_user_model(),on_delete =models.CASCADE,)
...
现在,当我映射用户的用户名和书的所有者时,它不起作用。这是 HTML 模板的 ID:
...
{% for book in object_list %}
<div class="card">
<span class="font-weight-bold">{{book.title}}</span>
<span class="font-weight-bold">by {{book.author}}</span>
<span class="text-muted">Genre: {{book.genre}}</span>
<span class="text-muted">Owner: {{book.owner}}</span>
<span class="text-muted">User: {{user.username}}</span>
<div class="card-footer text-center text-muted">
{% if user.username == book.owner %}
<a href ="{% url 'book_edit' book.pk %}">Edit</a> | <a href="{% url 'book_delete' book.pk %}">Delete</a>
{% else %}
<a href="#">Show Details</a>
{% endif %}
</div>
</div>
<br />
{% endfor %}
...
我也分别带来了用户名和所有者以进行比较。我仍然获得所有书籍的展示详细信息。
对于调试,我还尝试将 'user.username' 和 'book.owner' 等同于 'jitesh2796' 。虽然前者有效,但后者无效。所以我猜问题出在 django 领域的某个地方。
哔哔one
BIG阳
相关分类