0

问题是我不能去这个模型,他特别相信用户会为模型分配许多输入,而我只将一个输入分配给另一个模型。

想法是从所有条目中获取所有数据,每个条目获取最后一级相关模型,请参见示例:

class User
    # a standard django.contrib.auth user model

class UserProfile(models.Model):
    # my AUTH_PROFILE_MODULE for django-profiles
    user = models.ForeignKey(User, unique=True)
    instance = models.ManyToManyField(Instance1)

class Model2(models.Model):
    user = models.ForeignKey(User)
    item0 = models.CharField(max_length=12)
    model2 = models.OneToOneField(Model2)

class Model3(models.Model):
    item1 = models.CharField(max_length=12)

user = request.user

模型 2 - 项目 1

  • 项目 0[0]= 1
  • 项目 0[1]= 2
  • 项目 0[2]= 3

模型 3 - 项目 2

  • 项目 1[0]= 4
  • 项目 1[1]= 5
  • 项目 1[2]= 6

因为我可以从 Model2 和 Model3 中获取所有 item1 和 intem2,使用配置文件并放置在一个变量中以在模板中呈现所有 ManyToManyField -> (OneToOneField -> Items) ?

我正在努力:

myuser = request.user
items = UserProfile.objects.get(user=myuser)

去爬查询。

4

1 回答 1

0

我认为您可能会混淆模型和实例。您在此处定义的所有内容都只是一个蓝图或模板——您并没有真正通过它们直接存储或访问数据。但是,您可以使用它们为数据赋予结构,并创建该结构的实例

例如,这里我定义了一个基本模型。在 Django 中,这些通常定义在models.py

class MyModel(models.Model):
  name = models.CharField(max_length=20)
  element = models.CharField(max_length=12)

现在,我将使用称为构造函数的函数创建模型的实例。一般来说,您只使用模型的名称 ( ModelName(parameter=value,...)) 来调用它。在 Django 中,这通常作为 中的操作的一部分来完成views.py,但您也可以在 Python 控制台中通过导入所需的类 ( from models import Model) 来尝试它。

在这里,我填充了 10 个实例MyModel

for i in range (0,10):
  m = MyModel(element="letter" + str(i), name="Instance"+ str(i))
  m.save() # this saves m in MyModel.objects

所有这些实例都通过 访问ModelName.objects.all(),您可以通过通常的.符号访问该字段:

models = MyModel.objects.all()
output = ""
for m in models:
  output += m.name + ":" + m.element

将其输出到浏览器需要更多步骤 - 我强烈建议您逐步尝试官方 Django 教程,以更好地了解框架的工作原理。

于 2012-05-17T22:38:51.700 回答