Подтвердить что ты не робот

Скрытое поле в модели Django

А назад я сделал класс модели. Я сделал несколько ModelForms, и он работал красиво.

Недавно мне пришлось добавить в него еще одно необязательное поле (пусто = True, null = True), чтобы мы могли хранить некоторые данные отношений между пользователями. Это, по сути, реферальная система.

Проблема заключается в том, что добавление этого нового поля означает, что поле реферала появляется там, где я не изменил ModelForms, чтобы исключить его. Обычно это означало бы дополнительные 10 минут, проходящие и исключающие их, но в этом случае из-за политики управления проектами из-под моего контроля я контролирую только Модели для этого приложения.

Можно ли:

  • Задайте поле для автоматического исключения?
  • Установите его так, чтобы он отображался как скрытый (приемлемый, если не идеальный)?
4b9b3361

Ответ 2

Если у вас есть доступ к шаблону, вы можете отобразить его скрытое поле со следующим кодом:

{{ form.field_name.as_hidden }}

вместо стандарта:

{{ form.field_name }}

Ответ 4

Хотя вы упомянули, что вы не можете использовать исключение в своем случае, я думаю, что другие, которые сталкиваются с этим ответом (например, я, на основе названия), могут оказаться полезными.

В ModelAdmin можно выборочно скрыть поля с помощью exclude, вот фрагмент из того, над чем я работаю:

class ItemsAdmin(admin.ModelAdmin):
    form = ItemsForm
    actions = None
    list_display = ('item_id', 'item_type', 'item_title', 'item_size', 'item_color',)
    search_fields = ('item_id', 'item_title',)
    inlines = [ImageInline,]
    readonly_fields = ('disable_add_date','disable_remove_date',)
    exclude = ('add_date', 'remove_date',)
    ###.............