gpt4 book ai didi

python - 如何使通用 ListView 只显示用户的列表?

转载 作者:行者123 更新时间:2023-12-02 04:28:56 24 4
gpt4 key购买 nike

我是 Django 的新手,我是第一次使用基于类的 View 。我想使用通用的 ListView 来显示用户拥有的“表”列表。到目前为止,我已经得到它来显示数据库中的所有表。但我只希望它显示登录用户的表格。

这是我的观点:

from django.shortcuts import render
from django.http import HttpResponse
from django.views import generic
from vtables.models import Vtable

class TableListView(generic.ListView):

model = Vtable
context_object_name = 'table_list'

def get_context_data(self, **kwargs):
context = super(TableListView, self).get_context_data(**kwargs)
return context

这就是我的模型的样子:

from django.db import models
from django.contrib.auth.models import User

class Vtable(models.Model):
user = models.ForeignKey(User)
table_name = models.CharField(max_length=200)
added_date = models.DateTimeField('date added')

class Vdata(models.Model):
table_id = models.ForeignKey(Vtable)
table_pk = models.IntegerField()
column_1 = models.CharField(max_length=200)
column_2 = models.CharField(max_length=200)
added_date = models.DateTimeField('date added')

我承认,我不确定这条线在做什么:

context = super(TableListView, self).get_context_data(**kwargs)

但我怀疑这就是我需要改变的地方?或者我必须进入我的模板并在那里做一个 if 语句吗?可能是这样的:{% if request.user == vtable.user %}?

编辑:这是我的模板:

{% extends "base.html" %}
{% load staticfiles %}

{% block content %}
{% if request.user.is_authenticated %}
<img src="{{ request.user.profile.profile_image_url }}"/>
<a href="/accounts/logout/" class="pull-right">Logout</a>

{% if request.user.first_name or request.user.last_name %}
{{ request.user.first_name }} {{ request.user.last_name }}
{% else %}
{{ request.user.username }}
{% endif %}

{% if request.user.profile.account_verified %}
(verified)
{% else %}
(unverified)
{% endif %}

<h1>Tables</h1>
<ul>
{% for vtable in table_list %}
<li>{{ vtable.user }}, {{ vtable.table_name }}</li>
{% endfor %}
</ul>
{% else %}
<a href="/accounts/login/" class="pull-right">Login</a>
{% endif %}
{% endblock %}

最佳答案

也许,覆盖 get_queryset():

def get_queryset(self):
return self.model.objects.filter(user=self.request.user)

关于python - 如何使通用 ListView 只显示用户的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24725617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com