今回取り上げるのは新聞の購読者のデータ化です
①ユーザーID(プライマリーキー)
②購読者名
③購読者住所
④銘柄
⑤価格
⑥契約開始月
⑦契約終了月
(今回①と③は省略しています)
購読者名の一部を入力すると該当する購読者のデータリストが表示されます
また、購読開始月と購読終了月に求めたい月の数値を入力すると
その月の購読者リストが出てきます
また、今回はデータベースを簡易版の『SQlite』から『MySQL』に変更しました
これを元に(まだまだヨチヨチ状態ですが)
動的 HTML & CSS 切り替えを学ぶ必要があると思います
昔、見た中にループ +{ % XXXXX % } といったデータ表示方法があったような記憶があります
これに関する書籍を探しましたが、今のところ見つかっていません
別々に学習しなければいけないかも知れませんが、あまり無駄はしたくありません
『枝葉』は今は要りません. 内容のある『実』が欲しいのです.
その後、枝葉も必要なら勉強します
search / models.py
from django.db import models
class Manage_test(models.Model):
user_name = models.CharField(verbose_name='氏名', max_length=20)
paper_name = models.CharField(verbose_name='銘柄',max_length=20)
price = models.IntegerField(verbose_name='価格', null=True)
contract_start = models.IntegerField(verbose_name='開始', null=True)
contract_end = models.IntegerField(verbose_name='終了', null=True)
user_name = models.CharField(verbose_name='氏名', max_length=20)
paper_name = models.CharField(verbose_name='銘柄',max_length=20)
price = models.IntegerField(verbose_name='価格', null=True)
contract_start = models.IntegerField(verbose_name='開始', null=True)
contract_end = models.IntegerField(verbose_name='終了', null=True)
config / settings.py
・・・
search / serializers.py
from rest_framework import serializers
from django_filters import rest_framework as filters
from search.models import Manage_test
from django_filters import rest_framework as filters
from search.models import Manage_test
class Manage_testSerializer(serializers.ModelSerializer):
class Meta:
model = Manage_test
fields = ('user_name', 'paper_name', 'price', 'contract_start', 'contract_end')
class Meta:
model = Manage_test
fields = ('user_name', 'paper_name', 'price', 'contract_start', 'contract_end')
class SearchManage_testFilter(filters.FilterSet):
user_name = filters.CharFilter( lookup_expr='contains')
contract_start = filters.NumberFilter(lookup_expr='gte')
contract_end = filters.NumberFilter(lookup_expr='lte')
class Meta:
model = Manage_test
fields = ('user_name', 'paper_name', 'price', 'contract_start', 'contract_end')
user_name = filters.CharFilter( lookup_expr='contains')
contract_start = filters.NumberFilter(lookup_expr='gte')
contract_end = filters.NumberFilter(lookup_expr='lte')
class Meta:
model = Manage_test
fields = ('user_name', 'paper_name', 'price', 'contract_start', 'contract_end')
search / views.py
from rest_framework import viewsets
from .models import Manage_test
from .serializers import Manage_testSerializer, SearchManage_testFilter
from .models import Manage_test
from .serializers import Manage_testSerializer, SearchManage_testFilter
class Manage_testViewSet(viewsets.ModelViewSet):
queryset =Manage_test.objects.all()
serializer_class = Manage_testSerializer
class SearchManage_testViewSet(viewsets.ModelViewSet):
queryset = Manage_test.objects.all()
serializer_class = Manage_testSerializer
filter_class = SearchManage_testFilter
queryset = Manage_test.objects.all()
serializer_class = Manage_testSerializer
filter_class = SearchManage_testFilter
search /urls.py
from rest_framework import routers
from .views import Manage_testViewSet, SearchManage_testViewSet
from .views import Manage_testViewSet, SearchManage_testViewSet
router = routers.DefaultRouter()
router.register(r'all_manages', Manage_testViewSet)
router.register(r'manage', SearchManage_testViewSet)
urlpatterns = router.urls
router.register(r'all_manages', Manage_testViewSet)
router.register(r'manage', SearchManage_testViewSet)
urlpatterns = router.urls
config / urls.py
from django.conf.urls import url, include
from django.contrib import admin
from django.contrib import admin
from search.urls import router as search_router
from search import views
from search import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^search/', include(search_router.urls)),
]
url(r'^admin/', admin.site.urls),
url(r'^search/', include(search_router.urls)),
]