У меня есть модель, в которой пользователь загружает 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
views, чтобы вернуть мне некоторые значения.Есть ли метод Django, чтобы сделать это?
Это то, что я хотел бы иметь: