Оператор if для определенного поля в шаблоне django

Я вывожу форму в шаблоне django, используя эту модель:

class Group(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()
    members = models.IntegerField(default=0)
    has_max = models.BooleanField(default=False)
    max_size = models.IntegerField(default=10)
    DAYS = [
        ('Sundays', 'Sundays'),
        ('Mondays', 'Mondays'),
        ('Tuesdays', 'Tuesdays'),
        ('Wednesdays', 'Wednesdays'),
        ('Thursdays', 'Thursdays'),
        ('Fridays', 'Fridays'),
        ('Saturdays', 'Saturdays'),
    ]
    meeting_day = MultiSelectField(
        verbose_name = 'Meeting day(s)',
        choices=DAYS,
        max_choices=6,
        max_length=100
    )
    start_time = TimeField(widget=TimePickerInput)
    end_time = TimeField(widget=TimePickerInput)

    def __str__(self):
        return self.name

И на этот шаблон:

<form method="POST">
    {% csrf_token %}
    {{form.as_p}}
    <button>POST</button>
</form>

У меня есть пара вопросов на будущее:

Моя первая проблема заключается в том, что я хочу, чтобы max_size отображался в моей форме шаблона только в том случае, если пользователь нажмет has_max. Например, условное условие, когда пользователь устанавливает флажок, меняя has_max на True, тогда он может ввести максимальный размер группы.

Моя вторая проблема заключается в том, что start_time и end_time не отображаются в моем шаблоне или на стороне администратора. Я не уверен, как работает TimePickerInput, но прямо сейчас в моей форме шаблона или форме администратора нет полей, которые имеют эти временные поля.

И последнее, если у меня оба имени одинаковые (т.е. ('Sundays', 'Sundays'),), нужно ли иметь оба? Или django может сам разобраться.

Первая проблема, как я понимаю, вы хотите иметь этот флажок и когда он будет истинным, появится поле max_size Эта проблема должна быть решена с помощью javascript

Почему?

Потому что если вы используете Django template, вам придется обновлять страницу, когда пользователь что-то изменит, а это перегрузит сервер. Поэтому вам нужно создать событие с js, когда пользователь нажмет на checkbox, оно исчезнет

И последнее, если у меня оба имени одинаковые (т.е. ('Sundays', 'Sundays'), нужно ли иметь оба? Или Django сам разберется?

.

Эта часть ... Вы должны знать, что первое значение - это значение, которое будет храниться в базе данных, а второе значение - это человекочитаемое значение, то, что будет отображаться для пользователя в форме Read This

Вы должны знать, что вы не можете поместить виджеты в вашу модель, если вы хотите добавить их, добавьте их в ваши файлы admin или form ... Вы переопределите AdminModel в вашем admin файле и измените form значение Read This

Вернуться на верх