更新型号。型号:
class GetOrNoneManager(models.Manager):
"""returns none if object doesn't exist else model instance"""
def get_or_none(self, **kwargs):
try:
return self.get(**kwargs)
except ObjectDoesNotExist as e:
logger.warning(e)
return None
class BaseModel(models.Model):
class Meta:
abstract = True
ordering = ('-created_at',)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
created_at = models.DateTimeField('Дата создания', auto_now_add=True, db_index=True)
updated_at = models.DateTimeField('Дата изменения', auto_now=True)
objects = GetOrNoneManager()
def str(self):
return self.id.hex
有没有什么特定的文件,我应该创建保存这样的代码?
1条答案
按热度按时间3j86kqsm1#
可以将其放在models.py将要使用该管理器/模型对的应用程序中的www.example.com文件中;比如:
应该绝对没问题;尽管我建议你调整你的文档字符串,因为它看起来像你的.get_or_none()的定义是在类中而不是在方法上。另一种方法是创建一个应用程序,它将保存这些信息以最小化交叉依赖:
这样你就可以创建多个应用程序,它们都可以有扩展你创建的类的模型,它们都依赖于MyCustomManagers应用程序(请注意,这不是一个很好的命名约定,因为MyCustomManagers不是超级描述性的)。