带有Django的Django()对于1无效'

2024-04-26 14:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的网站上,data['checked_users']中获取我标记为True的用户:

models.py

class Player(models.Model):
    jucator = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, related_name='jucator')
    porecla = models.CharField(max_length=50, null=True, blank=True)
    selectat = models.BooleanField(default=False)

    def __str__(self):
        return u'%s' % self.jucator

views.py

^{pr2}$

checkbox.html

<body>
    {% block content %}
        <form action="" method="POST">{% csrf_token %}
            <table>
                    {% if request.user.is_superuser %}
                        {% for user in players %}
                            <tr>
                                <td><input type="checkbox" name="checks[]" value="{{ user.jucator }}" title="selected_players">{{ user.jucator }}<br></td>
                            </tr>
                        {% endfor %}
                            <tr>
                                <td><input type="submit" name="submit" value="Submit"></td>
                            </tr>
                    {% else %}
                        {% for user in players %}
                            <tr><td>{{ user.jucator }}</td></tr>
                        {% endfor %}
                    {% endif %}
            </table>
        {% for player in checked_users %}
            {{ player }}
        {% endfor %}
        </form>
    {% endblock %}
</body>

如果我尝试这个,它会向玩家展示:

data['checked_users'] = list_of_checks

如果我尝试使用过滤器,会出现以下错误:

invalid literal for int() with base 10: 'Stalone'

Tags: nameinpytruefordatamodelsusers
1条回答
网友
1楼 · 发布于 2024-04-26 14:51:06

您需要在value="{{ user.jucator }}"中放入jucator对象的实际id。不是jucator对象本身。在

所以,改成这个:value="{{ user.jucator.id }}"。现在您可以使用Player.objects.filter(jucator__in=list_of_checks)进行查询,因为list_of_checks包含一个整数列表(jucators的ids)。在

相关问题 更多 >