{"id":735,"date":"2019-02-03T16:12:18","date_gmt":"2019-02-03T07:12:18","guid":{"rendered":"https:\/\/www.nblog09.com\/w\/?p=735"},"modified":"2021-11-11T17:33:29","modified_gmt":"2021-11-11T08:33:29","slug":"django-get-or-create","status":"publish","type":"post","link":"https:\/\/www.nblog09.com\/w\/2019\/02\/03\/django-get-or-create\/","title":{"rendered":"Django\u3001\u30e2\u30c7\u30eb\u306b\u30ec\u30b3\u30fc\u30c9\u3092\u767b\u9332\u3059\u308bget_or_create\u306e\u4f7f\u3044\u65b9\u3092\u307e\u3068\u3081\u307e\u3057\u305f"},"content":{"rendered":"<h2 class=\"title-border\"><strong> get_or_create\u306e\u4f7f\u3044\u65b9 <\/strong><\/h2>\n<p>django\u306eget_or_create\u306f\u3001DB\u304b\u3089\u30ec\u30b3\u30fc\u30c9\u3092\u53d6\u5f97\u3057\u305f\u308a\u30ec\u30b3\u30fc\u30c9\u3092\u633f\u5165\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002 get_or_create\u3092\u4f7f\u3046\u3068\u3001<span class=\"pink_span\"> \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u3001DB\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u767b\u9332\u3057\u3066\u767b\u9332\u3057\u305f\u5024\u3092\u8fd4\u3057\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u3001DB\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u767b\u9332\u305b\u305a\u306b\u5024\u3092\u8fd4\u3059\u3002<\/span><\/p>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5229\u7528\u3059\u308b\u3002<\/p>\n<p><span class=\"pink_span\"> result, created = Model.objects.get_or_create(**kwargs) <\/span><\/p>\n<p>*) kwargs\u306b\u306f\u3001\u633f\u5165\u3057\u305f\u3044\u30ec\u30b3\u30fc\u30c9\u306e\u5024\u3092\u6307\u5b9a\u3059\u308b\u3002<\/p>\n<p>DB\u306b\u65b0\u305f\u306b\u30ec\u30b3\u30fc\u30c9\u3092\u633f\u5165\u3057\u306a\u304b\u3063\u305f\u5834\u5408\u306b\u306f\u3001<span class=\"pink_span\"> created\u306b\u306fFalse\u304c\u8fd4\u3055\u308c\u3001result\u306b\u306f\u6307\u5b9a\u3057\u305fModel\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u8fd4\u3055\u308c\u308b\u3002 <\/span><\/p>\n<p>DB\u306b\u65b0\u305f\u306b\u30ec\u30b3\u30fc\u30c9\u3092\u633f\u5165\u3057\u305f\u5834\u5408\u306b\u306f\u3001<span class=\"pink_span\"> created\u306b\u306fTrue\u304c\u8fd4\u3055\u308c\u3001result\u306b\u306f\u633f\u5165\u3055\u308c\u305fModel\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u8fd4\u3055\u308c\u308b\u3002<\/span><\/p>\n<p>\u5b9f\u969b\u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a18\u8ff0\u3059\u308b\u3002<\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>User\u30e2\u30c7\u30eb<\/li>\n<\/ul>\n<div class=\"programming-inside\">from django.db import models<br \/>class User(models.Model):<br \/>\u00a0 \u00a0 first_name = models.CharField(max_length=128) <br \/>\u00a0 \u00a0 last_name = models.CharField(max_length=128) <br \/>\u00a0 \u00a0 email = models.EmailField(max_length=264, unique=True)<\/div>\n<ul>\n<li>get_or_create<\/li>\n<\/ul>\n<div class=\"programming-inside\">import os<br \/>os.environ.setdefault(\"DJANGO_SETTINGS_MODULE\", 'Project.settings')<strong> # django\u306eDB\u63a5\u7d9a\u8a2d\u5b9a\u8aad\u307f\u8fbc\u307f<br \/><\/strong>import django django.setup()<strong> # django\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/strong><\/div>\n<div class=\"programming-inside\">from appTwo.models import User<strong> # model<br \/><\/strong><br \/>first_name = \"Taro\"<br \/>last_name = \"Tanaka\"<br \/>email = \"aaa@mail.com\"<\/p>\n<p><strong># 1\u56de\u76ee\u306e\u5b9f\u884c<br \/><\/strong>user, created = User.objects.<span class=\"codehighlight\">get_or_create<\/span>(first_name=first_name, last_name=last_name, email=email)<\/p>\n<p>print(user.first_name)<strong> # Taro<br \/><\/strong>print(user.last_name)<strong> # Tanaka<br \/><\/strong>print(created)<strong> # True<\/p>\n<p><\/strong><strong># 2\u56de\u76ee\u306e\u5b9f\u884c<br \/><\/strong>user2, created2 = User.objects.<span class=\"codehighlight\">get_or_create<\/span>(first_name=first_name, last_name=last_name, email=email)<\/p>\n<p>print(user2.first_name)<strong> # Taro<br \/><\/strong>print(user2.last_name)<strong> # Tanaka<br \/><\/strong>print(created2)<strong> # False<\/strong><\/div>\n<\/div>\n<p>\u307e\u305f\u3001get_or_create()\u3067\u5024\u3092\u53d6\u5f97\u3057\u305f\u969b\u3001\u9078\u629e\u6761\u4ef6\u3067<span class=\"pink_span\">\u8907\u6570\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u8fd4\u3055\u308c\u305f\u3089\u3001MultipleObjectsReturned\u30a8\u30e9\u30fc\u304c\u8fd4\u3055\u308c\u308b\u3002<\/span><\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>MultipleObjectsReturned\u30a8\u30e9\u30fc<\/li>\n<\/ul>\n<div class=\"programming-inside\">\nimport os<br \/>\nos.environ.setdefault(\"DJANGO_SETTINGS_MODULE\", 'Project.settings') <strong># django\u306eDB\u63a5\u7d9a\u8a2d\u5b9a\u8aad\u307f\u8fbc\u307f<\/strong><\/p>\n<p>import django<br \/>\ndjango.setup() <strong># django\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/strong><\/p>\n<p>from appTwo.models import User<\/p>\n<p>first_name = \"Taro\"<br \/>\nlast_name = \"Suzuki\"<br \/>\nemail = \"bbb@mail.com\"<\/p>\n<p><strong># Taro,Suzuki\u304c\u767b\u9332\u3055\u308c\u308b<\/strong><br \/>\nuser, created = User.objects.<span class=\"codehighlight\">get_or_create<\/span>(first_name=first_name, last_name=last_name, email=email)<\/p>\n<p><strong>#\u524d\u56de\u767b\u9332\u3057\u305fTaro,Tanaka\u3068\u4e8c\u3064\u8fd4\u3055\u308c\u308b\u305f\u3081\u3001\"MultipleObjectsReturned\"\u30a8\u30e9\u30fc\u304c\u8fd4\u3055\u308c\u308b<\/strong><br \/>\nuser2, created2 = User.objects.<span class=\"codehighlight\">get_or_create<\/span>(first_name=first_name)\n<\/div>\n<\/div>\n<h2 class=\"title-border\"><strong> get_or_create\u306e\u5fdc\u7528(filter) <\/strong><\/h2>\n<p>\u6700\u5f8c\u306b\u3001get_or_create\u306e\u5fdc\u7528\u7684\u306a\u4f7f\u3044\u65b9\u306b\u3064\u3044\u3066\u4ee5\u4e0b\u306b\u8a18\u8ff0\u3059\u308b\u3002<\/p>\n<p>fileter\u95a2\u6570\u3068django.db.models\u30d1\u30c3\u30b1\u30fc\u30b8\u306eQ\u30af\u30e9\u30b9\u3092\u7528\u3044\u3066\u3001<span class=\"pink_span\">\u30e2\u30c7\u30eb\u306e\u4e00\u90e8\u3092\u62bd\u51fa\u3057\u305d\u306e\u4e2d\u306b**kwargs\u3067\u6307\u5b9a\u3057\u305f\u5024\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u306a\u3044\u5834\u5408\u306f\u767b\u9332\u3057\u3001\u3042\u308b\u5834\u5408\u306f\u767b\u9332\u3057\u306a\u3044\u3053\u3068\u3082\u3067\u304d\u308b\u3002<\/span><\/p>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5229\u7528\u3059\u308b\u3002<\/p>\n<p><span class=\"pink_span\"><br \/>\nresult, created = Model.objects.filter(Q=filter).get_or_create(**kwargs)<br \/>\n<\/span><\/p>\n<div class=\"programming-gray\">\n<ul>\n<li>filter\u3092\u7528\u3044\u305fget_or_create<\/li>\n<\/ul>\n<div class=\"programming-inside\">\nimport os<br \/>\nos.environ.setdefault(\"DJANGO_SETTINGS_MODULE\", 'ProTwo.settings') <strong># django\u306eDB\u63a5\u7d9a\u8a2d\u5b9a\u8aad\u307f\u8fbc\u307f<\/strong><\/p>\n<p>import django<br \/>\ndjango.setup()<strong> # django\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/strong><\/p>\n<p><span class=\"codehighlight\">from django.db.models import Q<\/span><br \/>\nfrom app.models import User<\/p>\n<p>last_name = \"Suzuki\"<br \/>\nemail = \"ccc@mail.com\"<\/p>\n<p>user, created = User.objects.<span class=\"codehighlight\">filter<\/span>(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"codehighlight\">Q<\/span>(first_name='Taro') | <span class=\"codehighlight\">Q<\/span>(first_name='Jiro')<br \/>\n).get_or_create(last_name=last_name, defaults={'first_name': 'Taro'})<br \/>\n<strong># User\u30af\u30e9\u30b9\u3067\u3001first_name\u304cTaro,Jiro\u306e\u3082\u306e\u306e\u4e2d\u3067\u3001last_name\u304cSuzuki\u306e\u3082\u306e\u304c\u3042\u308c\u3070\u3001Taro,Suzuki\u3067\u767b\u9332\u3057\u3001created\u306b\u306fTrue\u304c\u8fd4\u3055\u308c\u308b<\/strong>\n<\/div>\n<\/div>\n<div class=\"django-adsense\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>get_or_create\u306e\u4f7f\u3044\u65b9 django\u306eget_or_create\u306f\u3001DB\u304b\u3089\u30ec\u30b3\u30fc\u30c9\u3092\u53d6\u5f97\u3057\u305f\u308a\u30ec\u30b3\u30fc\u30c9\u3092\u633f\u5165\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002 get_or_create\u3092\u4f7f\u3046\u3068\u3001 \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u3001D [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":358,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_uag_custom_page_level_css":"","_uf_show_specific_survey":0,"_uf_disable_surveys":false,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[121,219],"tags":[122,138,130,14],"class_list":{"0":"post-735","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-django","8":"category-it-programming","9":"tag-django","10":"tag-get_or_create","11":"tag-model","12":"tag-python","13":"entry"},"uagb_featured_image_src":{"full":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",613,480,false],"thumbnail":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480-150x150.jpg",150,150,true],"medium":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480-300x235.jpg",300,235,true],"medium_large":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",613,480,false],"large":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",613,480,false],"1536x1536":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",613,480,false],"2048x2048":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",613,480,false],"home-middle":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",447,350,false],"home-top":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",536,420,false],"sidebar-thumbnail":["https:\/\/www.nblog09.com\/w\/wp-content\/uploads\/2019\/01\/balloon-3206530__480.jpg",100,78,false]},"uagb_author_info":{"display_name":"9nmatsumoto","author_link":"https:\/\/www.nblog09.com\/w\/author\/9nmatsumoto\/"},"uagb_comment_info":2,"uagb_excerpt":"get_or_create\u306e\u4f7f\u3044\u65b9 django\u306eget_or_create\u306f\u3001DB\u304b\u3089\u30ec\u30b3\u30fc\u30c9\u3092\u53d6\u5f97\u3057\u305f\u308a\u30ec&hellip;","_links":{"self":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts\/735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/comments?post=735"}],"version-history":[{"count":31,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts\/735\/revisions"}],"predecessor-version":[{"id":3785,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/posts\/735\/revisions\/3785"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/media\/358"}],"wp:attachment":[{"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/media?parent=735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/categories?post=735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nblog09.com\/w\/wp-json\/wp\/v2\/tags?post=735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}