জ্যাঙ্গো মডেল ম্যানেজার অবজেক্টস.ক্রেট করুন ডকুমেন্টেশনটি কোথায়?


86

আমি সর্বদা পড়ি যা আমার ব্যবহার করা উচিত

model = Model(a=5, b=6)
model.save()

তবে আমি কেবল সেখানে দেখলাম একটি ম্যানেজার ফাংশন তৈরি করা আছে, কারণ আমি এটি ব্যবহার করে একটি ওপেনসোর্স জ্যাঙ্গো অ্যাপ্লিকেশনটি দেখেছি।

model = Model.objects.create(a=5, b=6)
print model.pk
1

তাহলে কি এটি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে? অথবা এটি এখনও। সেভ পদ্ধতিটি ব্যবহার করা পছন্দ করে। আমি অনুমান করছি যে অবজেক্টস ক্রিয়েট এটি তৈরির চেষ্টা করবে তা যা-ই হোক না কেন, পিকে নির্দিষ্ট করা থাকলে সেভ কোনও বিদ্যমান বস্তুটি সংরক্ষণ করতে পারে।

এগুলি আমি খুঁজে পেয়েছি: https://docs.djangoproject.com/en/dev/topics/db/queries/#creating-objects


11
কেন এই প্রশ্নটি ডাউন ভোট পেয়েছে? আমি সবেমাত্র একই প্রশ্নটি নিয়ে এখানে পৌঁছেছি এবং এটি দরকারী বলে মনে করি।
ফার্গুজ্জ

4
আমি এটাও জানতাম না, সম্ভবত লোকেরা এটি নির্বোধ এবং সুস্পষ্ট বলে মনে করেছিল। এটি সম্পর্কে এত যত্ন করবেন না: পি আমি আমার উত্তর পেয়েছি খুশি। আমিও ফলাফল ছাড়াই অনুসন্ধান করেছি তাই জিজ্ঞাসা করেছি।
স্যাম স্টোলিঙ্গা

উত্তর:



44
p = Person.objects.create(first_name="Bruce", last_name="Springsteen")

সমতুল্য:

p = Person(first_name="Bruce", last_name="Springsteen") 
p.save(force_insert=True)

ফোর্স_ইনটার মানে হ'ল একটি নতুন অবজেক্ট সর্বদা তৈরি হবে।
সাধারণত আপনার এই সম্পর্কে চিন্তা করার দরকার নেই। তবে, যদি আপনার মডেলটিতে একটি ম্যানুয়াল প্রাথমিক কী মান রয়েছে যা আপনি সেট করেছেন এবং যদি সেই মানটি ডেটাবেসে ইতিমধ্যে বিদ্যমান থাকে, () তৈরি করার জন্য একটি কল একটি ইন্টিগ্রিটিআররের সাথে ব্যর্থ হবে যেহেতু প্রাথমিক কীগুলি অবশ্যই অনন্য হবে। আপনি যদি ম্যানুয়াল প্রাথমিক কীগুলি ব্যবহার করেন তবে ব্যতিক্রমটি পরিচালনা করতে প্রস্তুত হন।


3

মূলত একই কাজ করে তৈরি করুন। নীচে তৈরির জন্য উত্স কোড।

def create(self, **kwargs):
    """
    Creates a new object with the given kwargs, saving it to the database
    and returning the created object.
    """
    obj = self.model(**kwargs)
    self._for_write = True
    obj.save(force_insert=True, using=self.db)
    return obj

এটি একটি উদাহরণ তৈরি করে এবং তারপরে এটি সংরক্ষণ করে।


1

মূলত, এই দুটি পদ্ধতি সমতুল্যModel.objects.createএটি জাঙ্গোর স্টাইলের সাথে বেশি উপযুক্ত হওয়ার কারণে এটির ব্যবহার পছন্দ করা যেতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.