Как получить внешние ключи из неформального шаблона ListView, используя флажки? - PullRequest
0 голосов
/ 07 мая 2019

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

Это то, что я хотел бы иметь:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...