Как создать частную модель поля в Django? - PullRequest
4 голосов
/ 18 ноября 2011

Есть ли способ создать личное поле в Django. Я хочу, чтобы это поле было доступно только из методов этого класса.

Вот пример того, что я хочу:

class TestModel(models.Model):
    __some_field = models.CharField(max_length=255)

РЕШЕНИЕ НАЙДЕНО:

Обновление: наконец, я создаю собственное решение для этого случая и добавляю его в свой пакет django-fields, который доступен на GitHub: https://github.com/svetlyak40wt/django-fields

В частности, если вы хотите, чтобы в ваших моделях были закрытые поля, вы должны унаследовать их от моего ModelWithPrivateFields класса.

Пример доступен на юнит-тестах django-fields .

1 Ответ

0 голосов
/ 20 ноября 2011

Почему вы хотите это сделать?

Если вы просто хотите скрыть это поле в интерфейсе администратора, вы можете использовать имя этого поля без начального подчеркивания (насколько я знаю, это не имеет никакого значения для Django) и зарегистрировать класс TestModelAdmin:

class TestModelAdmin(admin.ModelAdmin):
    exclude = ('some_field',)

admin.site.register(TestModel, TestModelAdmin)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...