Отображение вида обновления django в сетке - PullRequest
0 голосов
/ 06 июня 2019

Я создал небольшое приложение Django, в котором у меня есть следующее

Модель:

class CourseBatch(models.Model):
    start_date = models.DateTimeField(null = True, blank = True)
    end_date = models.DateTimeField(null = True, blank = True)
    batch_name = models.CharField(max_length=50, default="Enter Batch Name")
    course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name="batches")
    trainer = models.ForeignKey(Trainer, on_delete=models.CASCADE, related_name="trainer")
    college = models.ForeignKey(College, on_delete=models.CASCADE, related_name="college")
    additional_notes = models.TextField(max_length=500, default="No_Points",blank=True)
    user = models.ForeignKey(User, verbose_name='user', on_delete=models.CASCADE, default=1)
    objects = models.Manager()

class ChkListForBatch(models.Model):
    batch = models.ForeignKey(CourseBatch, on_delete=models.CASCADE, related_name="checklistitems")
    chkpoint = models.ForeignKey(CheckPoint, on_delete=models.CASCADE, related_name="chkpoint")
    chkpoint_done = models.BooleanField(default=False)
    updated_on = models.DateTimeField(null = True, blank = True)    
    objects = models.Manager()

    def __str__(self):
        return self.chkpoint.description

View

class CheckListForBatch(LoginRequiredMixin, generic.UpdateView):
    model = ChkListForBatch
    form_class = ChkListForBatchForm
    template_name = 'checklistforbatch.html'

    def get_queryset(self):
        batch_id = self.kwargs.get('pk')
        print(self.kwargs.get('pk'))
        selected_batch = CourseBatch.objects.filter(id=batch_id)    
        chkListItems = ChkListForBatch.objects.filter(batch=selected_batch[0])
        return chkListItems #batch[0].checklistitems.all()

Template

{% extends 'base.html' %}

{% block title %}My Batches{% endblock %}

{% block content %}
    <h1>Batches</h1>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Sign up</button>
    </form>
{% endblock %}

Это прекрасно работает и отображает форму со списками, как показано на рисунке ниже

The Update View

Пользователь перейдет к этому экрану из списка партий, щелкнув одну из партий. Но я хочу, чтобы отображалась сетка или список, подобный интерфейсу пользователя, со всеми элементами в выпадающем списке «контрольная точка», соответствующими выбранному пакету, и соответствующим им флажком «контрольная точка выполнена». При этом все контрольные точки и статус будут видны на одном экране, и пользователю не нужно будет постоянно выбирать элементы поля со списком.

Мне не нужно показывать поля «Пакет» и «Обновлен на», и я хотел бы, чтобы поле даты обновлялось автоматически при сохранении элементов. Я искал в Интернете, но не смог найти направление. Есть ли способ преобразовать / настроить внешний вид по умолчанию для общих видов?

...