Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取类的单个对象?_Python_Django - Fatal编程技术网

Python 如何获取类的单个对象?

Python 如何获取类的单个对象?,python,django,Python,Django,我有一个简单的Django模型,定义如下: from django.db import models LEVEL_CHOICES = (('beg', 'beginner'), ('ind', 'inter'), ('exp', 'expert')) class scrape(models.Model): subject = models.CharField(max_length=128, unique=True) # level= models.CharField(max_

我有一个简单的Django模型,定义如下:

from django.db import models

LEVEL_CHOICES = (('beg', 'beginner'), ('ind', 'inter'), ('exp', 'expert'))

class scrape(models.Model):
    subject = models.CharField(max_length=128, unique=True)
    # level= models.CharField(max_length=128, unique=True)
    level = models.CharField(max_length=128, choices=LEVEL_CHOICES)
    time = models.IntegerField(unique=True)
    
def __str__(self):
        return self.subject
我希望我的views.py将subject对象作为scrape.subject.all,这一切都不起作用


如何获取存储在subject对象中的值并存储在某个变量中,以便我可以对其执行一些操作?

这里有一些基本问题

从django.db导入模型

LEVEL_CHOICES = (('beg', 'beginner'), ('ind', 'inter'), ('exp', 'expert'))

class Scrape(models.Model): # Classes should be uppercase
    subject = models.CharField(max_length=128, unique=True)
    # level= models.CharField(max_length=128, unique=True)
    level = models.CharField(max_length=128, choices=LEVEL_CHOICES)
    time = models.IntegerField(unique=True)

    def __unicode__(self): # __unicode__ is more recommended if you're using python 2.x
        return self.subject
现在要获得主题列表,只需键入:

mySubjects = Scrape.objects.all().values_list('subject', flat=True)

这里有一些基本问题

从django.db导入模型

LEVEL_CHOICES = (('beg', 'beginner'), ('ind', 'inter'), ('exp', 'expert'))

class Scrape(models.Model): # Classes should be uppercase
    subject = models.CharField(max_length=128, unique=True)
    # level= models.CharField(max_length=128, unique=True)
    level = models.CharField(max_length=128, choices=LEVEL_CHOICES)
    time = models.IntegerField(unique=True)

    def __unicode__(self): # __unicode__ is more recommended if you're using python 2.x
        return self.subject
现在要获得主题列表,只需键入:

mySubjects = Scrape.objects.all().values_list('subject', flat=True)

您可以使用创建主题列表


您可以使用创建主题列表


看来你走错了方向。您只能使用all方法获取所有db模型,即:碎片而非主题:

scraps = scrap.objects.all()
然后,可以在第二步中获取所有受试者:

subjects = [s.subject for s in scraps]

但是,出于性能方面的考虑,您应该按照Sayse上面的建议进行操作。

看起来您有点走错了方向。您只能使用all方法获取所有db模型,即:碎片而非主题:

scraps = scrap.objects.all()
然后,可以在第二步中获取所有受试者:

subjects = [s.subject for s in scraps]

但是,出于性能原因,您应该按照上面的建议执行。

scrapsFilteredBySubject=Scraps.objects.filtersubject='my_subject'?subject='my_subject'是另一个模型吗?…这是一个非常基本的问题,本教程对此进行了详细介绍。首先,你是如何确定你想要的对象的?@Sayse no这不是另一个模型。不清楚你到底想要实现什么,你是在寻找一系列主题吗?有特定主题的废品清单?还有什么?scrapsFilteredBySubject=Scraps.objects.filtersubject='my_subject'?subject是另一个模型吗?…这是一个非常基本的问题,本教程对此进行了详细介绍。首先,你是如何确定你想要的对象的?@Sayse no这不是另一个模型。不清楚你到底想要实现什么,你是在寻找一系列主题吗?有特定主题的废品清单?如果OP使用的是Python2,则更推荐使用unicode;没有理由假设。只有在OP使用Python 2时,才更推荐使用unicode;没有理由这么想我只是想说谢谢你的提醒。。但是从数据库返回的内容也有很大的不同,这将极大地影响使用all和FILTERING之间的性能可能确实是一个很大的不同,先生!不过,我想尽量坚持最初的问题。无论如何,我还是编辑了我的答案。我想我应该说谢谢你的提醒。。但是从数据库返回的内容也有很大的不同,这将极大地影响使用all和FILTERING之间的性能可能确实是一个很大的不同,先生!不过,我想尽量坚持最初的问题。无论如何,我还是对我的答案做了一些修改。