django manage
1675 단어 django
Django는 기본적으로 모든 모델에 Objects라는 관리자를 자동으로 추가합니다.단, Objects를 필드 이름으로 사용해야 한다면, Objects라는 이름을 사용하고 싶지 않거나, 모델에 사용자 정의 이름을 지정할 수도 있습니다.모델에 모델을 정의하면.Manager () 유형의 속성은 관리자 객체입니다.
from django.db import models
class Person(models.Model):
... people = models.Manager()
이 예에서 Person.objects.all ()는 이상을 일으키고 Person.people.all ()는 모든 Person 객체를 제공합니다.
Book.objects.all ()에서 objetcs는 Manager의 예입니다.그렇다면 언제 자신의 관리자를 맞춤형으로 만들어야 하나요?
만약 Person에게.objects.get()memcached get 데이터를 통해cache에 있는지 없는지 데이터베이스에서 데이터를 조회하면 개인 관리자를 맞춤형으로 만들 수 있습니다.
class CacheBaseManager(models.Manager):
def get(self, *arg, **kwargs):
id = kwargs.get("id", 0)
uid = kwargs.get("user__id", 0) or kwargs.get("user__id__exact", 0)
key = id and cf.generate_cache_key(id, self.model) or \
uid and cf.generate_cache_key("uid:%s" % uid, self.model)
model = key and cache.get(key)
# id
if not model:
model = super(CacheBaseManager, self).get(*arg, **kwargs)
cache.set(key, model, 60*60)
else:
if dir(self.model()) != dir(model):
model = super(CacheBaseManager, self).get(*arg, **kwargs)
cache.set(key, model, 60*60)
logging.debug("cache hit >> [%s]" % key)
return model
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.