#django #django-models #django-admin
#джанго #django-модели #django-admin #django
Вопрос:
У меня есть простая модель a Student
, которая зарегистрирована администратором через a admin.ModelAdmin
.
Форма изменения администратором этой модели выглядит следующим образом:
Я хотел бы немного изменить макет этой формы, чтобы несколько полей могли находиться в одной строке, вот так (отредактировано в Paint):
Есть ли что-то, что я мог бы сделать, не переопределяя шаблоны по умолчанию? А если нет, то каков наилучший способ?
Заранее благодарю.
Ответ №1:
Вы можете использовать fields
атрибут в ModelAdmin
следующим образом:
@admin.register(Student)
class StudentAdmin(admin.ModelAdmin):
fields = (
('no_student', 'last_name', 'first_name),
'course',
'sex',
'id'
)
Поля, сгруппированные в один кортеж или вложенный список, будут отображаться в одной строке. Вы можете создать более одной такой группы.
Комментарии:
1. Чем это отличается от ответа Сагара?
2. Использование
fieldsets
в этом примере избыточно, вместо этого вы можете сделать это с помощьюfields
.
Ответ №2:
Вы можете сделать это с помощью наборов полей.
class StudentAdmin(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': (('no_student', 'last_name', 'first_name), 'course', 'sex', 'ID')
}),
...
)
Пожалуйста, обратите внимание, что я завернул поля, которые должны отображаться в одной строке в одном кортеже.