获取 ForeignKey 的值而不是 ID
Getting value of a ForeignKey instead ID
我必须在 json 响应中传递一个 ForeignKey 对象,我是这样做的:
data = {}
p = Bets.objects.create( bet_id=request.POST['team'],number=number)
data['success'] = p
return HttpResponse(json.dumps(data), content_type='application/json')
bet_id
字段是一个 ForeignKey,数字是一个 CharField,如果在 data['success']
我通过 p.number
我可以毫无问题地通过它,但是当我通过 p.bet_id
我得到了那个 ForeignKey 的 ID,我需要得到值,我正在尝试使用 p.bet_id__name
查找字段,但我收到以下错误:
'Bets' object has no attribute 'bet_id__name'
我的模特:
class Teams(models.Model):
name = models.CharField(max_length=100)
class Bets(models.Model):
bet = models.ForeignKey(Teams)
number = models.CharField(max_length=255)
如何实现获取值而不是 id?
您将要使用:
data['success'] = p.bet.name
请注意,这将针对您的数据库创建第二个 SQL 查询,以加载绑定到 p.bet
的团队对象。为了节省一点开销,您可以更改此行:
Bets.objects.create( bet_id=request.POST['team'],number=number)
为此:
Bets.objects.create( bet_id=request.POST['team'],number=number).select_related('bet')
我必须在 json 响应中传递一个 ForeignKey 对象,我是这样做的:
data = {}
p = Bets.objects.create( bet_id=request.POST['team'],number=number)
data['success'] = p
return HttpResponse(json.dumps(data), content_type='application/json')
bet_id
字段是一个 ForeignKey,数字是一个 CharField,如果在 data['success']
我通过 p.number
我可以毫无问题地通过它,但是当我通过 p.bet_id
我得到了那个 ForeignKey 的 ID,我需要得到值,我正在尝试使用 p.bet_id__name
查找字段,但我收到以下错误:
'Bets' object has no attribute 'bet_id__name'
我的模特:
class Teams(models.Model):
name = models.CharField(max_length=100)
class Bets(models.Model):
bet = models.ForeignKey(Teams)
number = models.CharField(max_length=255)
如何实现获取值而不是 id?
您将要使用:
data['success'] = p.bet.name
请注意,这将针对您的数据库创建第二个 SQL 查询,以加载绑定到 p.bet
的团队对象。为了节省一点开销,您可以更改此行:
Bets.objects.create( bet_id=request.POST['team'],number=number)
为此:
Bets.objects.create( bet_id=request.POST['team'],number=number).select_related('bet')