【问题标题】:List model field Django?列出模型字段Django?
【发布时间】:2021-03-07 21:33:25
【问题描述】:

我最近才开始使用 Django 开发一个规划器应用程序。我创建了一个新的 User 类,它扩展了 Django 的 User 类。这是代码:

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

class CustomUser(AbstractUser):
    projects = []

项目列表包含用户拥有的所有项目。下面是 Project 的模型和使用的视图:

class Project(models.Model):
    title           = models.CharField(max_length=60)

def dashboard_view(request, *args, **kwargs):  
    if request.user.is_authenticated:
        context = {
        'projects' : request.user.projects
    }
        return render(request, 'dash.html', context)
    else:
        return redirect('login')

这暂时有效,但是当我结束服务器时,它会变回一个空列表。模型字段类型的形式是否有任何等价物?谢谢大家!

【问题讨论】:

  • 您正在寻找 ForeignKey 或 JSON 字段,但我认为 ForeignKey 可以在这里完成。将字段user = models.ForeignKey(UserModel...) 添加到您的项目模型并保存用户。有大约一百个关于 ForeignKeys 以及如何使用它们的教程。随便选一个。

标签: django django-models view


【解决方案1】:

有更好的方法。在您的项目模型中,您可以添加一个字段,如

from django.conf import settings
user = models.ForeignKey(settings.AUTH_USER_MODEL,...)

在你看来,你可以使用类似的东西

request.user.project_set.all()

这使您可以访问已登录用户的所有项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2011-03-07
    • 2012-05-13
    • 1970-01-01
    • 2011-06-22
    • 2019-12-24
    • 1970-01-01
    相关资源
    最近更新 更多