Как сделать поле доступным для чтения после отправки 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.

Вернуться на верх