【问题标题】:Pass array of objects to another model call django将对象数组传递给另一个模型调用 django
【发布时间】:2017-06-08 17:02:08
【问题描述】:

我正在尝试为用户选择所有类,然后加载所有对应的类对象。这是我的 model.py 文件:

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


class Class(models.Model):
    name = models.CharField(max_length=150)
    description = models.TextField()
    teacher = models.ForeignKey(User)

class UserClasses(models.Model):
    class_name = models.ForeignKey(Class)
    user = models.ForeignKey(User)

这是我正在打的电话:

def index(request):
    #grab all classes for a user
    users_classes = UserClasses.objects.filter(user=request.user)
    #pass the array of class objects and get their info
    classes = Class.objects.select_related(self=users_classes)

     context_dict = {}

     return render(request, 'dashboard/index.html', context_dict)

我怎样才能实现上述目标?

【问题讨论】:

标签: python django database model


【解决方案1】:

你可以的

users_classes = UserClasses.objects.filter(user=request.user)
classes = Class.objects.filter(class_name__in=users_classes)

现在classes 对象包含用户所属的所有类。

【讨论】:

  • 我收到错误:无法将关键字“class_name”解析为字段。选项有:描述、id、姓名、教师、teacher_id、用户类
  • 你的 Class 模型没有任何字段 class_name 它的 name 所以更新查询像 classes=Class.objects.filter(name__in=users_classes)
猜你喜欢
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 2015-09-15
  • 2021-10-06
  • 2018-09-05
  • 2015-07-14
相关资源
最近更新 更多