Как добавить опцию в поле, унаследованное от родительского класса? - PullRequest
0 голосов
/ 24 сентября 2010

Как добавить в свой пользовательский класс параметр для поля, существующего в родительской модели? Конкретнее: я пишу пользовательскую модель комментариев, унаследованную от django.contrib.comments.models.Comment. Я хотел бы добавить опцию editable = False к IPAddressField.

спасибо

Ответы [ 2 ]

0 голосов
/ 25 сентября 2010

Я предполагаю, что вы не хотите отображать или делать его редактируемым в Admin.

from django.contrib import admin
from django.contrib.comments.models import Comment

class CommentAdmin(admin.ModelAdmin):
    exclude = ('ip_address',)

admin.site.unregister(Comment)
admin.site.unregister(Comment, CommentAdmin)

В качестве альтернативы вы можете использовать ready_only:

readonly_fields = ['ip_address']
0 голосов
/ 24 сентября 2010

Я не знаю, как добавить опцию к существующему полю в суперклассе (если кто-то знает, лучше поделитесь). Вы также не можете переопределить поле, так как суперкласс не является абстрактным.

Если вы хотите предотвратить редактирование поля, вы можете использовать форму пользовательской модели. Эта форма может быть проверена, чтобы убедиться, что поле IP-адрес не может быть отредактировано.

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