Как я могу настроить свои шаблоны django, такие как страница группы администраторов, я пытался получить все поля, но он только выбирает доступные разрешения, а не выбирает выбранное поле разрешения. Помогите, спасибо
Поля, которые я хочу: введите описание изображения здесь
И затем я получу результаты: введите описание изображения здесь
Некоторые коды в формах:
class UserGroupForm(forms.ModelForm):
class Meta:
model = Group
fields = '__all__'
Некоторый код в Views:
def save_all(request, form, template_name):
data = dict()
error = None
if request.method == 'POST':
if form.is_valid():
form.save()
data['form_is_valid'] = True
data['action'] = True
else:
data['form_is_valid'] = False
error = form.errors
context = {
'form': form,
'error': error,
}
data['html_form'] = render_to_string(template_name, context, request=request)
return JsonResponse(data)
def create(request):
if request.method == 'POST':
form = UserGroupForm(request.POST)
else:
form = UserGroupForm()
form2 = UserPermissionForm()
return save_all(request, form, 'usergroups/create.html')
Некоторый код в шаблонах:
<form action="" method="post" data-url="{% url 'userroles:create' %}" class="create-form">
{% csrf_token %}
<div class="modal-header">
<h5 class="modal-title">Create Test</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
{% if error %}
<div class="alert alert-danger text-center" role="alert">
{% for field, error in error.items %}
{{ error | striptags }}
<br>
{% endfor %}
</div>
{% endif %}
<div class="form-group">
{{form}}
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Save changes</button>
</div>
</form>
Некоторый код в Ajax:
$(document).ready(function(){
var ShowForm = function(){
var btn = $(this);
$.ajax({
url: btn.attr('data-url'),
type: 'get',
dataType: 'json',
beforeSend: function(){
$('#modal-test').modal('show')
django.jQuery('select.selectfilter, select.selectfilterstacked').each(function () {
var $el = $(this),
data = $el.data();
SelectFilter.init($el.attr('id'), data.fieldName, parseInt(data.isStacked, 10));
});
},
success: function(data){
django.jQuery('select.selectfilter, select.selectfilterstacked').each(function () {
var $el = $(this),
data = $el.data();
SelectFilter.init($el.attr('id'), data.fieldName, parseInt(data.isStacked, 10));
});
$('#modal-test .modal-content').html(data.html_form);
}
})
};
var SaveForm = function(){
var form = $(this);
$.ajax({
url: form.attr('data-url'),
data: form.serialize(),
type: form.attr('method'),
dataType: 'json',
success: function(data){
if(data.form_is_valid){
if(data.deleteData){
Swal.fire({
type: 'warning',
title: 'Your Data is Deleted',
showConfirmButton: false,
timer: 1500
}).then(function(){
window.location.href = ''
})
} else if(data.action) {
Swal.fire({
type: 'success',
title: 'Your action is success',
showConfirmButton: false,
timer: 1500
}).then(function(){
window.location.href = ''
})
}
$('#modal-test').modal('hide');
console.log('Yes')
} else {
$('#modal-test .modal-content').html(data.html_form)
console.log('Not')
}
}
})
return false;
}
//create
$('.show-form').click(ShowForm);
$('#modal-test').on('submit', '.create-form', SaveForm);
//update
$(document).on('click', '.show-form-update', ShowForm);
$('#modal-test').on('submit', '.update-form', SaveForm);
//delete
$(document).on('click', '.show-form-delete', ShowForm);
$('#modal-test').on('submit', '.delete-form', SaveForm);
});