如何在django模型中使字段只能通过get和set方法访问

如何在django模型中使字段只能通过get和set方法访问,django,django-models,Django,Django Models,我正在django框架中编写一个小的消息应用程序。我希望我的'seen_time'和'seen'字段只能由我的书面方法设置。我可以这样做吗?请说明 这是我的“消息”模型代码 一种常见的情况是,当发出特定请求时,视图会更新模型。因此,在请求时(当然也可能是ajax请求),您可以随意更新它。综上所述: 在url.py中添加url 在views.py中添加一个视图,该视图将处理特定请求并更新模型 另一种可能是在保存模型时让模型自动更新某些字段。这可以通过pre_save等方法完成。但您仍然需要将模

我正在django框架中编写一个小的消息应用程序。我希望我的'seen_time'和'seen'字段只能由我的书面方法设置。我可以这样做吗?请说明

这是我的“消息”模型代码
一种常见的情况是,当发出特定请求时,视图会更新模型。因此,在请求时(当然也可能是ajax请求),您可以随意更新它。综上所述:

  • url.py中添加url
  • views.py
    中添加一个视图,该视图将处理特定请求并更新模型

另一种可能是在保存模型时让模型自动更新某些字段。这可以通过
pre_save
等方法完成。但您仍然需要将模型保存在视图中。

我对django和web技术完全陌生。我只是不想访问我的“seen”或“seen_time”字段,并根据我的视图设置它们的值……例如,我不应该在我的views.py文件更新的答案中这样做----msg.seen=true。为了得到一个好的答案,你必须更清楚地说明你到底想要实现什么以及为什么。如果你愿意分享你的发现,它们可能会对将来的其他人有所帮助。
from django.db import models
from django.conf import settings
from datetime import datetime

# Create your models here.

class Messages(models.Model):
    text = models.TextField(blank = False)
    sender = models.ForeignKey(settings.AUTH_USER_MODEL, related_name = 'sender')
    receiver = models.ForeignKey(settings.AUTH_USER_MODEL, related_name = 'receiver')
    seen = models.BooleanField(default = False)
    sent_time = models.DateTimeField(default = datetime.now) 
    seen_time = models.DateTimeField(null = True)
    hide = models.BooleanField(default = False)

    def set_seen_true(self):
        self.seen = True
        self.seen_time = datetime.now