Не определяйте свой класс Admin
в самой модели, как показано ниже. Это действительно старый способ сделать это, до Django 1.0. Я не уверен, какое учебное пособие или документацию вы используете, но оно очень устарело.
class UserProfile(models.Model):
notes = models.TextField(db_name="Notes", max_length=15)
# don't do this!
class Admin:
pass
Определение UserProfileAdmin
- правильный подход. Файл admin.py не должен идти в /static/admin/
. Статический каталог предназначен для статических файлов, таких как таблицы стилей CSS и файлы JavaScript, но не для кода Django.
Что касается вашего вопроса о том, можете ли вы определить модель без определения приложения, это не очень хорошая идея. Многие части django предполагают, что каждая модель принадлежит приложению. Например, имя таблицы базы данных: appname_modelname
.
Создание приложения не займет много времени. Запустите команду startapp, и она создаст базовый каталог и файлы.
./manage.py startapp <appname>
Все, что вам нужно сделать, это добавить новое приложение в INSTALLED_APPS
и создать файл admin.py
.
По мере того, как ваш проект становится больше, хранение моделей в приложениях сделает его более организованным. Многие пользователи Django создают приложение с именем utils
(или аналогичное) для нечетной модели.