如何在Django中获取多个复选框的值

52 投票
2 回答
35323 浏览
提问于 2025-04-16 08:04

我想通过 request.POST['xzy'] 来获取多个选择框的值,并把它们放在一个列表里。以下是我的模型和模板代码。

我的模型

class Recommend(models.Model):
  user=models.ForeignKey(User)
  book=models.ForeignKey(BookModel)
  friends=models.ManyToManyField(User, related_name="recommended")

我的模板

{% for friend in friends %}

<input type="checkbox" name="recommendations" id="option{{friend.id}}" value={{friend.username}} />
<label for="option{{friend.id}}"><b>{{friend.username}}</b></label><br />

{% endfor %}

我的视图代码

if request.method == 'POST': 
  recommendations=request.POST['recommendations']

在这里,我希望 'recommendations' 是一个包含所有朋友ID的列表,但现在它只是在每次循环时被覆盖,最后只保留了最后一次循环赋值的那个值。我该怎么解决这个问题呢?非常需要帮助。谢谢。

2 个回答

2

当然可以!请看下面的内容:

这段代码主要是用来处理一些数据的。它会从一个地方获取数据,然后进行一些操作,最后把结果输出。简单来说,就是把输入的数据变成我们想要的样子。

在这段代码中,有几个重要的部分:

1. **获取数据**:代码首先会从某个地方(比如数据库或者文件)获取需要处理的数据。

2. **处理数据**:接下来,代码会对获取的数据进行一些计算或者转换。这一步是最关键的,因为它决定了最终结果的样子。

3. **输出结果**:最后,处理完的数据会被输出到屏幕上,或者保存到某个地方,方便后续使用。

总的来说,这段代码就是一个数据处理的流程,帮助我们把原始数据变成有用的信息。

希望这个解释能让你更容易理解这段代码的作用!

if not request.POST.has_key(strName):
      return ""    
  if request.POST[strName]:
      return ','.join(request.POST.getlist(strName))          
  else:
      return ""
125

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这个时候,我们需要去寻找解决方案。StackOverflow是一个非常有用的网站,程序员们可以在这里提问和回答问题。

当你在StackOverflow上看到一个问题时,通常会有很多人分享他们的经验和解决办法。你可以从中学习到很多实用的技巧和知识。

如果你在写代码时遇到困难,不妨去看看StackOverflow,可能会找到你需要的答案,或者至少能让你更清楚地理解问题所在。

request.POST.getlist('recommendations')

撰写回答