Наличие общих полей на основе объектов модели в forms.py в django
У нас есть модель под названием Permission, и мы перечислили ее в форме в шаблоне django следующим образом:
{% for item in permissions %}
<tr>
<td class="text-nowrap">{{ item.app }}</td>
<td>
<div class="d-flex">
<div class="form-check me-3 me-lg-5 mb-0 mt-0">
<input class="form-check-input" type="checkbox" name="{{ item.app }}_add" id="{{ item.app }}ManagementWrite">
<label class="form-check-label" for="{{ item.app }}ManagementWrite">add</label>
</div>
<div class="form-check me-3 me-lg-5 mb-0 mt-0">
<input class="form-check-input" type="checkbox" name="{{ item.app }}_read" id="{{ item.app }}ManagementRead">
<label class="form-check-label" for="{{ item.app }}ManagementRead">read</label>
</div>
<div class="form-check me-3 me-lg-5 mb-0 mt-0">
<input class="form-check-input" type="checkbox" name="{{ item.app }}_update" id="{{ item.app }}ManagementUpdate">
<label class="form-check-label" for="{{ item.app }}ManagementUpdate">update</label>
</div>
<div class="form-check mb-0 mt-0">
<input class="form-check-input" type="checkbox" name="{{ item.app }}_delete" id="{{ item.app }}ManagementDelete">
<label class="form-check-label" for="{{ item.app }}ManagementDelete">delete</label>
</div>
</div>
</td>
</tr>
{% endfor %}
Итак, здесь у нас есть четыре варианта чтения, записи, обновления и удаления для каждого объекта в таблице разрешений .
Но как мне сделать форму в forms.py для этого, чтобы у меня были BoleanFields для каждого уровня доступа? например, четыре поля для приложения ticket (чтение, запись, обновление, удаление) и четыре поля для приложения users как одно и то же .
Вы можете использовать ListView
, CreateView
, UpdateView
, DeleteView
в django generic views.
Эти представления дают вам возможность определить form_class
или по умолчанию после определения model
для них, они используют модель формы и вы можете получить доступ к форме в шаблоне с помощью {{ form }}
.