Python 如果有用户创建的方法实例,则显示它们,否则显示字符串Django

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

代码:

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 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 %}