如何在问题创建后使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()
方法来完成此操作。