到目前为止,我有这个,抱歉我是编程新手 - 试图学习Django和Python。
视图:
def dashboard(request):
return render(request, 'app/dashboard.html', {'my_custom_sql': my_custom_sql})
下面的函数不会在模板中输出任何内容
def my_custom_sql(self):
return self.request.CustomUser.customuser_set.all()
使用硬编码的原始SQL替代上述方法:
def my_custom_sql():
current_user = 1
with connection.cursor() as cursor:
cursor.execute("SELECT first_name FROM customuser WHERE id =
%s",[current_user])
row = cursor.fetchone()
上面有效,但我找不到一种将 userid 传递给查询而不将其硬编码到用户变量的方法。
模板:
<h3> Displaying User's First Name </h3>
{% if user.is_authenticated %}
<p>The first name: {{my_custom_sql}}</p>
{% endfor %}
andtmc.欢迎来到SO。
您确实需要关闭if
标记:
模板
{% if user.is_authenticated %}
<p>The first name: {{my_custom_sql.first_name}}</p>
{% endif %}
views.py
def dashboard(request):
return render(request, 'app/dashboard.html', {'my_custom_sql': my_custom_sql(request)})
def my_custom_sql(request):
return CustomUser.objects.get(pk=request.user.pk)
根据您的型号,您只能:
{% if user.is_authenticated %}
<p>The first name: {{user.first_name}}</p>
{% endif %}