Как сделать поле доступным для чтения после отправки Post Request в Django?
Как я могу сделать дату начала_даты доступной для чтения после создания вопроса? Я пытался изменить файл admin.py, но поле даты все еще редактируется, я не знаю, как это решить
Это модель вопроса
class Question(models.Model):
poll_question = models.CharField(max_length=255, blank=False)
title = models.CharField(max_length=255, blank=True)
start_date = models.DateTimeField('date published', blank=False,)
def __str__(self):
return self.poll_question
def choices(self):
if not hasattr(self, '_choices'):
self._choices = self.choice_set.all()
return self._choices
Вот код, который я добавил в файл admin.py, чтобы сделать start_date readonly после создания, но изменений все равно нет.
class DateAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
if obj:
return self.readonly_fields + ('start_date')
else:
return []
Для установки поля модели администратора только для чтения используйте , readonly_fields атрибут
@admin.register(Question)
class DateAdmin(admin.ModelAdmin):
# ...
readonly_fields = ['start_date']
# ...
NB : Создание поля только для чтения предполагает, что у вас есть способ установить его без использования интерфейса администратора. Для этого вы можете переопределить метод save()
модели Question
.