获取 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')