问题是,我不能去这个模型,谁特别相信,用户将分配许多输入到模型,而许多我只分配一个输入到另一个模型。
其想法是从所有条目中获取所有数据,每个条目获得最后一个与级别相关的模型,请参见示例:
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.userModel2 - item1
Model3 - item2
因为我可以获得所有的item1和intem2表单Model2和Model3,使用配置文件并将其放入一个变量在模板中呈现所有的ManyToManyField -> (OneToOneField -> Item)?
我在努力:
myuser = request.user
items = UserProfile.objects.get(user=myuser)去爬升查询。
发布于 2012-05-17 22:38:51
我想你可能混淆了模型和实例。您在这里定义的所有内容都只是一个蓝图或模板--您并不是真正地通过它们存储或访问数据。但是,您可以使用它们为数据提供结构,并创建此结构的实例。
例如,这里我定义了一个基本模型。在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操作的一部分,但是您也可以通过导入所需的类(from models import Model)在Python中进行尝试。
这里我填充了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教程,以便更好地了解框架的工作原理。
https://stackoverflow.com/questions/10643682
复制相似问题