在模板中显示用户请求的项目(django)

Display Item requested by user in template (django)

我有一个简单的借阅物品请求应用程序,用户可以登录并填写以下表格:

这存储在数据库中Record stored in database

然后我有一个 return 页面,用户只需单击 return 即可确认已经 return 编辑了项目。

我只想显示与用户登录页面相关的项目,(所以只显示用户发出的请求:当前项目和之前的项目。)

我有以下请求模型 Table:

class Request(models.Model):
       shootkit_id = models.ForeignKey(Shootkit, on_delete=models.CASCADE)
       username = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
       request_start_date = models.DateField('Start Date')
       request_end_date = models.DateField('End Date')
       location = models.ForeignKey(Location, on_delete=models.CASCADE)
  

视图中的以下定义:

def return_form(request):
    form = shootkitForm
    request_db = Request.objects.all
    return render(request, 'return_form.html', {'form':form, 'request_db':request_db})

以及模板中的以下内容 return:

{% for shootkit in request_db %}
        <div class="callout-info">Hi {{ user }}, you currently have the {{ shootkit.shootkit_id }}</div>
        {% endfor %}

显然这是显示 table 上的每条记录(如果我有更多的记录)。我只想显示与用户 User log in info and name of the item

编辑的项目(在本例中为 shootkit #5)link

这是我的第一个开发,也是第一次使用 django...所以这是我能想到如何显示记录的唯一方法...但我不知道如何link 它与用户并仅显示用户(已登录)出现的记录。有人可以帮忙吗?

谢谢。

你必须使用 filter():

def return_form(request):
    form = shootkitForm
    request_db = Request.objects.filter(username=request.user)
    return render(request, 'return_form.html', {'form':form, 'request_db':request_db})