从模板

时间:2017-05-05 15:30:57

标签: python django model django-templates

我有一个与每个Django用户关联的模型User_Details。它有一个名为mobile_number的字段。我想访问模板中的mobile_number。我正在尝试request.user.User_Details.mobile_number,但它不起作用。这是正确的方法吗?如果没有,那我该怎么办呢?

2 个答案:

答案 0 :(得分:0)

试试这个(我假设index.html为模板,在urls.py中正确设置):

from django.contrib.auth.models import User

def index(request):
    template = loader.get_template('index.html')
    user_details = User_Details.objects.get(user=User.objects.get(username=request.user.username))

    context = RequestContext(request, {'mobile_no':user_details.mobile_number,}
    return HttpResponse(template.render(context))

如果您的User_Details模型中有用户对象(django.contrib.auth.models),则可以使用

class User_Details(models.Model):
    user = models.OneToOneField(User)
    mobile_number = models.CharField(...

然后在index.html或任何模板中使用

{{mobile_no}}

显示信息

答案 1 :(得分:0)

在不查看您的模型的情况下判断它是否有用,但我想您可以在[[amleth, hamlet], [dirty room, dormitory], [listen, silnet, tinsel], [pear]] 中使用related_name并直接访问它。

OneToOneField

然后 class User_Details(models.Model): user = models.OneToOneField(User, related_name="detail") mobile_number = models.CharField(... 访问它。 希望它有所帮助