如何在Django中发送Post请求后使字段只读?



如何在问题创建后使start_date只读?我已经尝试修改admin.py文件,但日期字段仍然是可编辑的,我不知道如何解决

这是Question模型

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只读,但仍然没有更改。

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模型字段设置为只读属性

@admin.register(Question)
class DateAdmin(admin.ModelAdmin):
# ...
readonly_fields = ['start_date']
# ...

注:将字段设置为只读,假设您有一种方法可以在不使用管理界面的情况下设置它。您可以覆盖Question模型的save()方法来完成此操作。