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