{"id":2647,"date":"2021-02-17T10:48:35","date_gmt":"2021-02-17T01:48:35","guid":{"rendered":"https:\/\/qol-kk.com\/wp2\/?p=2647"},"modified":"2021-02-17T10:48:35","modified_gmt":"2021-02-17T01:48:35","slug":"post-2647","status":"publish","type":"post","link":"https:\/\/qol-kk.com\/wp2\/blog\/2021\/02\/17\/post-2647\/","title":{"rendered":"Django\uff1aCRUD\u3092\u5b9f\u88c5\u3059\u308b\u3010create\u3011DB\u3078\u306e\u30ec\u30b3\u30fc\u30c9\u65b0\u898f\u767b\u9332"},"content":{"rendered":"<h2>Django\uff1aCRUD\u3092\u5b9f\u88c5\u3059\u308b\u3010create\u3011DB\u3078\u306e\u30ec\u30b3\u30fc\u30c9\u65b0\u898f\u767b\u9332<\/h2>\n<p>update\u3088\u308a\u3082\u96e3\u6613\u5ea6\u306f\u4f4e\u3044\u3067\u3059\u3002<\/p>\n<p>save\u95a2\u6570\u306e\u6a19\u6e96\u52d5\u4f5c\u304cInsert\u3067\u3042\u308b\u305f\u3081\u3001\u7279\u306b\u5de5\u592b\u3092\u51dd\u3089\u3055\u306a\u304f\u3066\u3082\u65b0\u898f\u8ffd\u52a0\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n<h3>\u30d7\u30ea\u30bb\u30c3\u30c8\u30af\u30e9\u30b9\u3092\u5229\u7528\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u306e\u65b0\u898f\u8ffd\u52a0\u65b9\u6cd5<\/h3>\n<p>\u3010CreateView\u3011\u3068\u3044\u3046\u6c4e\u7528\u30d3\u30e5\u30fc\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3053\u306e\u30af\u30e9\u30b9\u3092\u5229\u7528\u3059\u308b\u3068\u65b0\u898f\u8ffd\u52a0\u306eView\u306f\u305f\u3063\u305f3\u884c\u306e\u4e2d\u8eab\u3067\u7d42\u308f\u308a\u307e\u3059\u3002<\/p>\n<pre>class HogeCreateView(generic.edit.CreateView):\r\n    model = Hoge\r\n    form_class = HogeCreateForm\r\n    success_url = reverse_lazy(\"Hoge:hoge_list\")<\/pre>\n<p>Class\u5ba3\u8a00\u5f8c\u306e3\u884c\u306f\u3053\u3093\u306a\u5185\u5bb9\u3067\u3059\u3002\u3044\u3084\u3041\u3001\u30de\u30b8\u3067\u7c21\u5358\u3002<\/p>\n<div class=\"paperBox\">\n<ul>\n<li>2\u884c\u76ee\uff1a\u64cd\u4f5c\u3059\u308b\u30e2\u30c7\u30eb\u3092\u6307\u793a<\/li>\n<li>3\u884c\u76ee\uff1aUpdate\u3068\u304b\u3068\u5171\u901a\u3067\u4f7f\u3046Form\u3092\u6307\u793a<\/li>\n<li>4\u884c\u76ee\uff1a\u6210\u529f\u3057\u305f\u6642\u306eJUMP\u5148\u3092\u6307\u793a<\/li>\n<\/ul>\n<\/div>\n<h3>PresetClass(\u6c4e\u7528\u30d3\u30e5\u30fc)\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u306e\u554f\u984c\u70b9<\/h3>\n<p>\u8ab2\u984c\u3068\u306a\u308b\u30d1\u30fc\u30c4\u306fUpdate\u306e\u6642\u3068\u540c\u3058\u3067\u3059\u3002\u540c\u3058\u304f\u77e5\u898b\u306e\u3042\u308b\u65b9\u306a\u3089\u96e3\u306a\u304f\u30af\u30ea\u30a2\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<div class=\"paperBox\">\n<ol>\n<li>update\u6210\u529f\u6642\u306e\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5148\uff08success_url\uff09\u306b\u30da\u30fc\u30b8\u30cd\u30fc\u30b7\u30e7\u30f3\u306e\u3042\u308bList\u3092\u8a2d\u5b9a\u3059\u308b<\/li>\n<li>Template.html \u3067\u547c\u3073\u51fa\u3059 {{ form }} \u3067\u30ec\u30b9\u30dd\u30f3\u30b7\u30d6\u30c7\u30b6\u30a4\u30f3\u3092\u4f5c\u308b<\/li>\n<li>update\u6642\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b<\/li>\n<\/ol>\n<\/div>\n<p>\u3053\u308c\u3089\u306e\u4e57\u308a\u8d8a\u3048\u65b9\u306b\u3064\u3044\u3066\u306f<a href=\"https:\/\/qol-kk.com\/wp2\/blog\/2021\/02\/16\/post-2559\/\">\u524d\u56de\u8a18\u4e8b<\/a>\u3092\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\u3002<\/p>\n<h3>\u95a2\u6570(def)\u3092\u4f7f\u3063\u3066Create\u3092\u66f8\u304f<\/h3>\n<p>\u25a0app\/urls.py<\/p>\n<pre class=\"lang:python decode:true\">from django.urls import path\r\nfrom . import views\r\n\r\napp_name = 'hoge'\r\nurlpatterns = [\r\n  path('&lt;int:page&gt;\/', views.HogeListView, name=\"hoge_list\"),\r\n  path('create', views.HogeCreateView, name=\"hoge_create\"),\r\n]\r\n<\/pre>\n<p>\u25a0app\/views.py<\/p>\n<pre class=\"lang:python decode:true\">from django.views import generic\r\nfrom django.contrib import messages\r\nfrom django.shortcuts import render,redirec\r\nfrom .models import hoge \r\nfrom django.core.paginator import Paginator\r\n\r\ndef HogeCreateView(request):\r\n    if (request.method == 'POST'):\r\n        model = Hoge()\r\n        Recode = HogeCreateForm(request.POST, instance=model)\r\n        Recode.save()\r\n        messages.success(request, '\u30ec\u30b3\u30fc\u30c9\u3092\u65b0\u898f\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002')\r\n        return redirect(to='\/hoge\/1\/')\r\n\r\n    params = {\r\n        'url': '\/hoge\/create'\r\n    }\r\n    return render(request, 'hoge_create.html', params)<\/pre>\n<h4>\u30c1\u30e7\u30c3\u30c8\u89e3\u8aac<\/h4>\n<p>\u4e0a\u306b\u8f09\u305b\u305f views.py\u306fForm\u3092\u6d3b\u7528\u3057\u305f\u4f8b\u3067\u3059\u3002\u30b4\u30ea\u30b4\u30ea\u884c\u304f\u5834\u5408\u306f9\u884c\u76ee\uff5e11\u884c\u76ee\u3092\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<pre>#\u30c7\u30fc\u30bf\u9069\u7528 NULL\u306b\u6587\u5b57\u5217None\u304c\u5165\u308b\u3053\u3068\u3092\u56de\u907f\r\nif ((request.POST['column01'] == 'None')or(request.POST['column01'] == '')):\r\n        column01 = None\r\nelse:\r\n        column01 = request.POST['column01']\r\nif ((request.POST['column02'] == 'None')or(request.POST['column02'] == '')):\r\n        column02 = None\r\nelse:\r\n        column02 = request.POST['column02']\r\nif ((request.POST['column03'] == 'None')or(request.POST['column03'] == '')):\r\n        column03 = None\r\nelse:\r\n        column03 = request.POST['column03']\r\n\r\nRecode = Hoge(\r\n        column01=column01,\r\n        column02=column02,\r\n        column03=column03\r\n        )\r\nRecode.save()\r\n<\/pre>\n<h3>\u95a2\u6570\u3067\u66f8\u3044\u305f\u6642\u306b\u60a9\u3080\u3068\u3053\u308d<\/h3>\n<div class=\"paperBox\">\n<ul>\n<li>NULL\u3092\u5165\u308c\u305f\u3044\u306e\u306bNone\u304c\u767b\u9332\u3055\u308c\u308b\uff08\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u3053\u308c\u304c\u539f\u56e0\u3067\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u306b\u306a\u308b\uff09<\/li>\n<\/ul>\n<\/div>\n<p>\u3053\u308c\u3082Update\u306e\u8a18\u4e8b\u3067\u66f8\u3044\u305f\u5185\u5bb9\u3068\u540c\u3058\u306a\u306e\u3067\u3001<a href=\"https:\/\/qol-kk.com\/wp2\/blog\/2021\/02\/16\/post-2559\/\">\u524d\u56de\u8a18\u4e8b<\/a>\u3092\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\u3002<\/p>\n<h3>\u307e\u3068\u3081<\/h3>\n<p>Update\u3092\u69cb\u7bc9\u3067\u304d\u308c\u3070Create\u306f\u308f\u3051\u306a\u304f\u51e6\u7406\u3067\u304d\u307e\u3059\u3002Delete\u3082\u540c\u3058\u3067\u3059\u3002<\/p>\n<p>Delete\u306fobject.delete()\u3060\u3051\u3067\u51e6\u7406\u3067\u304d\u3066\u3057\u307e\u3044\u307e\u3059\u3002<\/p>\n<pre>def HogeDeleteView(request,pk):\r\n    object = Hoge.objects.get(pk=pk)\r\n\r\n    if (request.method == 'POST'):\r\n        object.delete()\r\n        messages.success(request, '\u524a\u9664\u3057\u307e\u3057\u305f')\r\n        return redirect(to='\/hoge')\r\n(\u4ee5\u4e0b\u7565)<\/pre>\n<p>Update\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308b\u3068\u60a9\u307f\u307e\u305b\u3093\u306d\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Django\uff1aCRUD\u3092\u5b9f\u88c5\u3059\u308b\u3010create\u3011DB\u3078\u306e\u30ec\u30b3\u30fc\u30c9\u65b0\u898f\u767b\u9332 update\u3088\u308a\u3082\u96e3\u6613\u5ea6\u306f\u4f4e\u3044\u3067\u3059\u3002 save\u95a2\u6570\u306e\u6a19\u6e96\u52d5\u4f5c\u304cInsert\u3067\u3042\u308b\u305f\u3081\u3001\u7279\u306b\u5de5\u592b\u3092\u51dd\u3089\u3055\u306a\u304f\u3066\u3082\u65b0\u898f\u8ffd\u52a0\u3057\u3066\u304f\u308c\u307e\u3059\u3002 \u30d7\u30ea\u30bb\u30c3\u30c8\u30af [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2174,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"","vkexunit_cta_each_option":"","_lightning_design_setting":[],"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[38],"tags":[287,914,814,498,99,147,53,247],"class_list":["post-2647","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python-memorandum","tag-create","tag-crud","tag-django","tag-docker","tag-mysql","tag-python","tag-53","tag-247"],"veu_head_title_object":{"title":"","add_site_title":""},"jetpack_publicize_connections":[],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/qol-kk.com\/wp2\/wp-content\/uploads\/2020\/11\/django.png","_links":{"self":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts\/2647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/comments?post=2647"}],"version-history":[{"count":0,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts\/2647\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/media\/2174"}],"wp:attachment":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/media?parent=2647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/categories?post=2647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/tags?post=2647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}