小村のポートフォリオサイト開発(9) DjangoRestFramework はてなブログの記事のデータ格納
こんばんは、小村だよ!
下記のポートフォリオサイトを構築していくよ
- サイト:Little Village
よろしくね!
目次
- 不要なmodel削除
- models作成
views.blog.py
の内容をviews.entry.py
に移植- はてな記事を
entry
に書き込み
記録
運用ルールの決定
APIで取得したデータを眺めながら、いくつか運用ルールを決めました
今後の記事を書く際に気を付けたいと思います
記事タイトルは最大100文字
- それ以上の場合は切って格納
カテゴリは1記事につき1つ
- 複数ある場合は最初の1つのみDBに格納
不要なmodels削除
これから本格的にmodelを用意するので、これまでテストで使用していたmodelを用済みです!
さくっと削除しましょう!
下記の通り、Userモデルを削除し、紐づいていた処理を全て削除しました!
models作成
ではでははてなブログの記事を格納するモデルを作っていくよ!
一般的にこういった記事はEntryという名前が多いのでそれに習います
もともと存在していたしていた
Entry
モデルを下記の通り修正
from django.db import models class Entry(models.Model): CHOICE_DRAFT = (('yes', '下書き'), ('no', '公開')) entry_id = models.AutoField(verbose_name='記事Id', primary_key=True) hatena_entry_id = models.BigIntegerField(verbose_name='はてな記事Id', unique=True) category = models.CharField(verbose_name='カテゴリ', max_length=100, null=True, blank=True, default='') title = models.CharField(verbose_name='タイトル', max_length=200, null=True, blank=True, default='') summary = models.CharField(verbose_name='サムネイル文', max_length=1000, null=True, blank=True, default='') content_md = models.TextField(verbose_name='内容_MarkDown', null=True, blank=True, default='') content_html = models.TextField(verbose_name='内容_HTML', null=True, blank=True, default='') draft = models.CharField(verbose_name='下書き区分', max_length=10, choices=CHOICE_DRAFT, null=True, blank=True, default='yes') published_at = models.DateTimeField(verbose_name='公開日時', null=True, blank=True) edited_at = models.DateTimeField(verbose_name='作成日時', null=True, blank=True) updated_at = models.DateTimeField(verbose_name='更新日時', null=True, blank=True) class Meta: db_table = 'entry'
- それから
serializers/entry.py
も下記の通り修正
# coding: utf-8 from rest_framework import serializers from ..models import Entry class EntrySerializer(serializers.ModelSerializer): class Meta: model = Entry fields = '__all__'
この状態でhttp://localhost:8000/api/entries/にアクセスし、更新できることを確認
問題なっしん!
views.blog.py
の内容をviews.entry.py
に移植
はてな記事をentry
用に加工
メインの処理!
取得したはてな記事を
Entry
モデル用に加工するよentry_id
を取得した時点で時間が来てしまったので続きは次に回すよ!
おわりに
中途半端!!!
entryに登録までやりたかったけどできませんでした!
次がんばるぞ~~~!
ではでは、ちゃお~~~!