40 django 모델 테이블 만들기
40.1 테이블만들기 - create table
8 장고 model 만들기 - MySQL 테이블 에서는 manager를 이용해 만들었습니다.
이번에는 테이블을 직접 생성하고
모델에 등록하는 방법으로 해보겠습니다.
py_blog_detail 테이블을 만들고 FK도 추가합니다.
CREATE TABLE `py_blog_detail` (
`id` int(11) NOT NULL ,
`detail_id` int(11) NOT NULL,
`sub_title` varchar(100) DEFAULT NULL,
`img_url` varchar(200) DEFAULT NULL,
`img_size` varchar(3) DEFAULT NULL,
`content_body` text,
PRIMARY KEY (`id`),
KEY `py_blog_detail_FK` (`detail_id`),
CONSTRAINT `py_blog_detail_FK` FOREIGN KEY (`detail_id`) REFERENCES `py_blog` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
40.2 테이블 스키마 가져오기 - inspectdb
inspectdb 명령어를 실행하면 모델에 등록할 수 있는 스키마가 나옵니다.
py_blog_detail 스키마를 찾아 복사합니다.
python manage.py inspectdb
40.3 장고 모델 등록 - model.py
모델에 붙여넣기 합니다.
join할때 사용하고자 related_name 을 추가했습니다.
#myapp/blog/model.py
class PyBlogDetail(models.Model):
detail = models.ForeignKey(PyBlog, models.DO_NOTHING, related_name="pb_detail")
sub_title = models.CharField(max_length=100, blank=True, null=True)
img_url = models.CharField(max_length=200, blank=True, null=True)
img_size = models.CharField(max_length=3, blank=True, null=True)
content_body = models.TextField(blank=True, null=True)
class Meta:
managed = False
db_table = 'py_blog_detail'
Comments
Login: