Django가 개발한 사용자 정의 관리자, ORM 관련 테이블, 트랜잭션
1. 새 모델 클래스
from django.db import models
class Country(models.Model):
name = models.CharField(max_length=100)
class Meta:
db_table = 'country'
verbose_name = ' '
verbose_name_plural = verbose_name
class Student(models.Model):
name = models.CharField(max_length=200)
grade = models.PositiveSmallIntegerField()
country = models.ForeignKey(Country,on_delete=models.PROTECT)
objects = ManagerStudent()
class Meta:
db_table = 'student'
verbose_name = ' '
verbose_name_plural = verbose_name
2. 모델 클래스 사용자화
Student 클래스에 추가:
objects = ManagerStudent()
그런 다음 모델을 상속하는 ManagerStudent 클래스를 새로 만듭니다.Manager 메서드
class ManagerStudent(models.Manager):
pass
3. 사용자 정의 모델 클래스에 추가 삭제 및 수정 방법 추가
class ManagerStudent(models.Manager):
def query(self):
student = self
""" """
qs = student.values()
return {'ret': 0, 'retlist': list(qs)}
def add_one(self,name,grade,country_id):
""" """
student = None
try:
student = self.get(name=name)
except:
student = None
if student:
return {'ret': 1, 'msg': ' '}
else:
data = self.create(name=name, grade=grade, country_id=country_id)
print(data)
return {'ret': 0}
def modify(self,id,name,grade,country_id):
""" """
student = None
try:
studnet = self.get(id=id)
except:
return {'ret':1,'msg':' '}
studnet.name = name
studnet.grade = grade
studnet.country_id = country_id
studnet.save()
return {'ret':0,'msg':' '}
def delete(self,id):
""" """
student = None
try:
student = self.get(id=id)
except student.DoesNotExist:
return {'ret':1,'msg':' '}
student.delete()
return {'ret':0,'msg':' '}
주의: 호출할 때는 Student만 필요합니다.objects.방법(매개 변수)입니다.
4.ORM 관련 매트릭스, 트랜잭션
4.1 객체를 통한 외부 키 테이블 액세스
s1 = Student.objects.get(name='fly1')
country_name = s1.country.name
print(country_name)
4.2 키보드 데이터에 따라 필터
data = Student.objects.filter(grade=1, country__name=' ').values()
print(list(data))
4.3 역방향 액세스
cn = Country.objects.get(name=' ')
data = cn.student_set.values()
print(list(data))
4.4 역필터
data = Country.objects.filter(student__grade=1).values().distinct()
print(list(data))
끝!!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django가 개발한 사용자 정의 관리자, ORM 관련 테이블, 트랜잭션Django가 개발한 사용자 정의 관리자, ORM 관련 테이블, 트랜잭션 1.새 모델 클래스 2.모델 클래스 사용자화 3.사용자 정의 모델 클래스에 삭제 수정 방법 추가 4.ORM 연관 테이블, 트랜잭션 4.1 객체...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.