Python 如果有用户创建的方法实例,则显示它们,否则显示字符串Django
代码: views.py:Python 如果有用户创建的方法实例,则显示它们,否则显示字符串Django,python,django,django-models,django-views,Python,Django,Django Models,Django Views,代码: views.py: @login_required(login_url='loginPage') def boardPage(request): if Board.objects.filter(user=request.user).exists(): boards = get_list_or_404(Board, user=request.user) context = {'boards': boards} return rende
@login_required(login_url='loginPage')
def boardPage(request):
if Board.objects.filter(user=request.user).exists():
boards = get_list_or_404(Board, user=request.user)
context = {'boards': boards}
return render(request, 'tasks/boards.html', context)
else:
context = {'boards': False}
return render(request, 'tasks/boards.html', context)
boards.html:
{% extends 'tasks/main.html' %}
{% block content %}
<center>board page<hr>
<a href="{% url 'boardAdd' %}">add board</a> <br><br>
your boards: <br> <br>
{% if boards is false %}
<p>you don't have any boards... Have you tried creating one? ;)</p>
{% else %}
{% for board in boards %}
<a href="{% url 'insideBoard' board.id %}">{{board}}<br></a>
{% endfor %}
{% endif %}
<br>
<br>
<hr>
<a href="{% url 'logoutPage' %}">Logout</a>
</center>
{% if messages %}
{% for message in messages %}
<u><br>{% if message.tags %} {% endif %}>{{ message }}</u>
{% endfor %}
{% endif %}
{% endblock %}
每次用户删除他/她的所有板或新用户访问该页面时(新用户还没有任何板,他们可以在那里创建一个),我都会得到
“输入错误在/
“bool”对象不可编辑”
如何更改代码以查看该页上的字符串而不是类实例?您不需要添加新变量,只需检查数组是否为空即可。当您试图在模板(
{'boards':False}
中迭代布尔值时,出现错误
{%extends'任务/main.html%}
{%block content%}
董事会页面
你的董事会:
{%如果不是板%}
你没有任何董事会。。。你试过创建一个吗?;)
{%else%}
{线路板中线路板的百分比%}
{%endfor%}
{%endif%}
{%if消息%}
{消息%中的消息为%s}
{%if message.tags%}{%endif%}>{{{message}}
{%endfor%}
{%endif%}
{%endblock%}
{%if boards为false%}应为“false”。。。但不确定这是否是唯一的原因。修复了我的问题,谢谢!:)
class Board(models.Model):
title = models.CharField(max_length=50, null=True)
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
def __str__(self):
return self.title
class Task(models.Model):
title = models.CharField(max_length=200, null=True)
done = models.BooleanField(default=False, null=True)
created_at = models.DateTimeField(auto_now_add=True, null=True)
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
board = models.ForeignKey(Board, null=True, on_delete=models.CASCADE)
due_to = models.DateField(null=True, validators=[dateValidation])
def __str__(self):
return self.title
@login_required(login_url='loginPage')
def boardPage(request):
boards = Board.objects.filter(user=request.user)
context = {'boards': boards}
return render(request, 'tasks/boards.html', context)
{% extends 'tasks/main.html' %}
{% block content %}
<center>board page<hr>
<a href="{% url 'boardAdd' %}">add board</a> <br><br>
your boards: <br> <br>
{% if not boards %}
<p>you don't have any boards... Have you tried creating one? ;)</p>
{% else %}
{% for board in boards %}
<a href="{% url 'insideBoard' board.id %}">{{board}}<br></a>
{% endfor %}
{% endif %}
<br>
<br>
<hr>
<a href="{% url 'logoutPage' %}">Logout</a>
</center>
{% if messages %}
{% for message in messages %}
<u><br>{% if message.tags %} {% endif %}>{{ message }}</u>
{% endfor %}
{% endif %}
{% endblock %}