我有一个模型,用户可以在其中上传一个csv文件,并使用名为ItemsBatch
的模型在其中创建单个的“项目”。
# item upload
class ItemBatch(models.Model):
# uploaded_by = models.ForeignKey(Teacher, on_delete=models.CASCADE, related_name='uploaded_by')
ttypes =(('Open','Open'),('Container','Container'),('Trailer','Trailer'),('All','All'))
uploaded_by = models.ForeignKey(User, on_delete=models.CASCADE, related_name='uploaded_by')
name = models.CharField(max_length=30)
pid = models.CharField(max_length=30)
quantity = models.CharField(max_length=30)
length = models.CharField(max_length=100, blank=True)
width = models.CharField(max_length=100, blank=True)
height = models.CharField(max_length=100, blank=True)
volume = models.CharField(max_length=100, blank=True)
weight = models.CharField(max_length=100, blank=True)
truck_type = models.CharField(max_length=255,default=0, choices=ttypes)
origin = models.CharField(max_length=100, blank=True)
destination = models.CharField(max_length=100, blank=True)
time = models.DateTimeField(max_length=100, blank=True,default=now)
rtd = models.BooleanField(default=False) #ready to dispatch checkbox
def __str__ (self):
return self.name
这是我的意见功能。请注意,它不是表单,而是ListView
,我正在这样显示在表上:
@method_decorator([login_required, teacher_required], name='dispatch')
class UploadedItems(ListView):
model = ItemBatch
ordering = ('name',)
context_object_name = 'quizzes'
template_name = 'classroom/teachers/item_list.html'
def get_queryset (self):
return ItemBatch.objects.filter(uploaded_by=self.request.user)
输出表:
这是我在模板html中的代码:
<tbody>
{% for quiz in last %}
<tr>
<td class="align-middle">{{ quiz.rtd }}</td>
<td class="align-middle">{{ quiz.name }}</td>
<td class="align-middle">{{ quiz.pid }}</td>
<td class="align-middle">{{ quiz.quantity }}</td>
<td class="align-middle">{{ quiz.length }}x{{ quiz.width }}x{{ quiz.height }}</td>
<td class="align-middle">{{ quiz.volume }}/{{ quiz.weight }}</td>
<td class="align-middle">{{ quiz.origin }}</td>
<td class="align-middle">{{ quiz.destination }}</td>
<td class="align-middle">{{ quiz.time|naturaltime }}</td>
</tr>
{% empty %}
正如您在第一栏中看到的那样,我正在传递布尔quiz.rtd。我想将其转换为复选框,以便用户可以选择多个“项目”,这些项目表示已打勾项目的主键,然后将该信息传递给另一个功能。或多或少,我想知道用户选择了哪些行(“项目”),并将信息传递给另一个函数。请注意,我是逐个渲染每个字段,而不是让它自己渲染。
可以这样做吗?我无法弄清楚如何转换此ListView
视图函数以返回一些值。有django方法可以做到这一点吗?
这是我想要的东西: