我有一份清单
[<Upload: 33-bb6f5d9a98604450>, <Upload: 35-bb6f5d9a98604450>, <Upload: 30-bb6f5d9a98604450>, <Upload: 31-bb6f5d9a98604450>, <Upload: 34-bb6f5d9a98604450>]
这是由...生成的
ques = list(sorted(Upload.objects.filter(unique_id=tdetail), key=lambda x: random.random()))
<Upload: 33-bb6f5d9a98604450>
这里上传是模型,33-bb6f5d9a98604450
是模型上传的slu g如何从这个列表中提取Upload
模型值
继承了我的观点
def platform(request,e,slug):
article = get_object_or_404(Article,e=e)
tdetail=get_object_or_404(test_detail,test_id=article)
if Platform.objects.filter(user=request.user,test_key=article).exists():
platform=get_object_or_404(Platform,user=request.user,test_key=article)
slugs = platform.list
for obj in slugs:
ques = Upload.objects.filter(slug=obj.slugs)
#Upload.objects.filter(slug=slugs)
else:
ques = list(sorted(Upload.objects.filter(unique_id=tdetail), key=lambda x: random.random()))
platform=Platform()
platform.user=request.user
platform.test_key=article
platform.list=ques
platform.save()
return render(request, 'articles/platform.html',{'ques':ques})
这是我的平台模型
class Platform(models.Model):
user=models.ForeignKey(User)
test_key=models.ForeignKey(Article)
list=models.CharField(max_length=2000)
def __unicode__(self):
return u"%s(%s)" % (self.user,self.id_apply)
class Meta:
unique_together = ('user', 'test_key',)
试试这个:
for obj in ques:
print obj.slug_field
可以通过迭代生成的列表来访问对象字段。我可以看到你正在尝试随机乱输查询集。也许你可以这样做:
ques = Upload.objects.filter(unique_id=tdetail).order_by('?')
反过来它将是一个查询集,你可以像往常一样使用它。或者也许您可以随机使用shuffle,并使用python执行:
假设ques是一个列表:
from random import shuffle
shuffle(ques)
对于错误,而不是这个:
slugs = platform.list
做这个:
import json
slugs = json.loads(platform.list)
这将返回一个slug列表,之后而不是循环:
ques = Upload.objects.filter(slug__in=slugs)
你必须遍历你的列表。例如
for upload in ques:
print upload.field_name
field_name是上载模型中的列(字段)。