Python 从表django中获取所有信息,而不仅仅是从表str(self)

Python 从表django中获取所有信息,而不仅仅是从表str(self),python,django,django-models,django-views,django-queryset,Python,Django,Django Models,Django Views,Django Queryset,型号.py class club(models.Model): name = models.CharField(max_length=30) city = models.CharField(max_length=30) premiere_leauge = models.BooleanField(default=False) def __str__(self): return self.name ... a = request.POST['club']

型号.py

class club(models.Model):
    name = models.CharField(max_length=30)
    city = models.CharField(max_length=30)
    premiere_leauge = models.BooleanField(default=False)

    def __str__(self):
    return self.name
...
a = request.POST['club']
b = request.POST['city']

result = club.objects.all.get(name__exact=a, city__exact=b)
....
视图.py

class club(models.Model):
    name = models.CharField(max_length=30)
    city = models.CharField(max_length=30)
    premiere_leauge = models.BooleanField(default=False)

    def __str__(self):
    return self.name
...
a = request.POST['club']
b = request.POST['city']

result = club.objects.all.get(name__exact=a, city__exact=b)
....
一切都很好,但我相信结果会回报我:

def __str__(self):
    return self.name
除此之外,我想从APP_CLUB中选择一个相当于
“SELECT*,其中name='something'和city='something'
这样我就可以在django中进行进一步的操作,比如:

if result[3] is True:
       do_something()

您应该修改查询,如下所示

result = club.objects.filter(name__exact=a, city__exact=b)

祝你好运

您应该修改查询,如下所示

result = club.objects.filter(name__exact=a, city__exact=b)

祝你好运

使用
filter
而不是
get

results = club.objects.filter(name__exact=a, city__exact=b)
然后可以对其进行迭代以访问所有模型属性,如下所示

for result in results:
    print result.name, result.city, result.premier_league

此外,根据PEP-8,您应该将您的类名命名为titlecase
Club
而不是小写的
Club

使用
filter
而不是
get

results = club.objects.filter(name__exact=a, city__exact=b)
然后可以对其进行迭代以访问所有模型属性,如下所示

for result in results:
    print result.name, result.city, result.premier_league

此外,根据PEP-8,您应该将您的类名命名为titlecase
Club
,而不是官方建议的小写
Club

它将返回与以下内容完全相同的结果:

'SELECT * FROM APP_CLUB where name='something';
例如:

clubs = club.objects.filter(name__exact='something')

for club in clubs:
    if club.premier_league:
        do_something()
如果你只想得到一个俱乐部,那么就这样做:

club = club.objects.get(name='something')
premier_league_value_of_club = club.premier_league

正如官方建议的那样:

它将返回与以下内容完全相同的结果:

'SELECT * FROM APP_CLUB where name='something';
例如:

clubs = club.objects.filter(name__exact='something')

for club in clubs:
    if club.premier_league:
        do_something()
如果你只想得到一个俱乐部,那么就这样做:

club = club.objects.get(name='something')
premier_league_value_of_club = club.premier_league

你快到了,我想你错过了这里的功能。您可以这样使用它:

a = request.POST['club']
b = request.POST['city']

result = club.objects.filter(name__exact=a, city__exact=b)
它将返回一个包含实际数据库条目的查询集

\uuuu str\uuuu(self)
函数用于将查询集条目转换为字符串,无论是字符串转换还是打印

那么关于这个,

if result[3] is True:
   do_something()
我不太明白你的意思,但是如果
3
是数据库中条目的id,那么你可以这样做:

if result.get(id=3).premiere_leauge:
    do_something()
但您可能希望首先检查id为的条目是否存在,以避免出现错误:

if result.filter(id=3).exists() and result.get(id=3).premiere_leauge:
    do_something()

你快到了,我想你错过了这里的功能。您可以这样使用它:

a = request.POST['club']
b = request.POST['city']

result = club.objects.filter(name__exact=a, city__exact=b)
它将返回一个包含实际数据库条目的查询集

\uuuu str\uuuu(self)
函数用于将查询集条目转换为字符串,无论是字符串转换还是打印

那么关于这个,

if result[3] is True:
   do_something()
我不太明白你的意思,但是如果
3
是数据库中条目的id,那么你可以这样做:

if result.get(id=3).premiere_leauge:
    do_something()
但您可能希望首先检查id为的条目是否存在,以避免出现错误:

if result.filter(id=3).exists() and result.get(id=3).premiere_leauge:
    do_something()


使用
filter
而不是
get
。谢谢,但我想访问表中名为premiere leauge的布尔字段?我怎样才能做到这一点?通过使用过滤器,结果[1]我得到了第二个对象而不是列。关于
结果[1]。premiere_leauge
?使用
过滤器而不是
get
。谢谢,但我想访问表中名为premiere leauge的布尔字段?我怎样才能做到这一点?通过使用筛选器,结果[1]我得到了第二个对象非列。
result[1]如何。premiere\u leauge
?。不需要全部。不需要全部谢谢,但我想访问表中名为premiere leauge的布尔字段?我怎样才能做到这一点?通过使用过滤器,结果[1]我得到了第二个对象而不是列。添加到回答中。非常感谢。我明白,谢谢,但我想访问表中名为premiere leauge的布尔字段?我怎样才能做到这一点?通过使用过滤器,结果[1]我得到了第二个对象而不是列。添加到回答中。非常感谢。我明白,谢谢,但我想访问表中名为premiere leauge的布尔字段?我怎样才能做到这一点?通过使用过滤器,结果[1]我得到了第二个object not列。添加了访问属性的适当代码。谢谢,但我想访问表中名为premiere leauge的布尔字段?我怎样才能做到这一点?通过使用筛选器,结果[1]我获得了第二个object not列。添加了用于访问属性的适当代码。您应该使用
.get
获取ID。它要快得多。使用try-except块而不是两次点击数据库进行存在性检查。应该使用
.get
进行ID检查。它要快得多。使用try-except块,而不是两次点击数据库进行存在性检查。