如何使用复选框从非格式模板ListView获取外键?

时间:2019-05-07 14:51:32

标签: python checkbox django-forms django-templates django-views

我有一个模型,用户可以在其中上传一个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)

输出表:

table

这是我在模板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方法可以做到这一点吗?

这是我想要的东西:

enter image description here

0 个答案:

没有答案