জাঙ্গোতে একাধিক অবজেক্ট মুছুন


119

একটি ওয়েবপৃষ্ঠা ব্যবহার করে জাঙ্গোতে আমার ডাটাবেস থেকে মুছতে আমার বেশ কয়েকটি অবজেক্ট নির্বাচন করতে হবে। নির্বাচনের জন্য কোনও বিভাগ নেই তাই আমি তাদের মতো সমস্তটি থেকে মুছতে পারি না। আমাকে কী আমার নিজস্ব মুছে ফর্মটি বাস্তবায়ন করতে হবে এবং এটি জাজানোতে প্রক্রিয়া করতে হবে বা জ্যাঙ্গোর ইতিমধ্যে এটি করার কোনও উপায় আছে? এটি প্রশাসক ইন্টারফেসে বাস্তবায়িত হিসাবে।

উত্তর:


219

আপনি চাইলে যে কোনও কোয়েরিसेट মুছতে পারেন। উদাহরণস্বরূপ, কিছু পোস্ট মডেল সহ সমস্ত ব্লগ পোস্ট মুছতে

Post.objects.all().delete()

এবং ভবিষ্যতে প্রকাশের তারিখ সহ যে কোনও পোস্ট মুছে ফেলতে

Post.objects.filter(pub_date__gt=datetime.now()).delete()

যাইহোক, আপনার ক্যোয়ারীসেটটি সঙ্কুচিত করার জন্য আপনাকে একটি উপায় নিয়ে আসা উচিত। আপনি যদি কোনও নির্দিষ্ট বিষয়বস্তু মুছতে কেবল একটি ভিউ চান তবে মুছে ফেলা জেনেরিক ভিউটি দেখুন

সম্পাদনা:

ভুল জন্য দুঃখিত. আমি মনে করি উত্তরটি কোথাও এর মধ্যেই রয়েছে। আপনার নিজের প্রয়োগ করতে, ModelFormগুলি এবং জেনেরিক দৃষ্টিভঙ্গি একত্রিত করুন । অন্যথায়, তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিতে সন্ধান করুন যা অনুরূপ কার্যকারিতা সরবরাহ করে। একটি সংশ্লিষ্ট প্রশ্ন , সুপারিশ ছিল জ্যাঙ্গো-Filter


4
না আপনি প্রশ্নটি ভুল বুঝেছেন না। আমি বুঝতে পারি আমি সবকিছু মুছতে পারি। তবে ওয়েবপৃষ্ঠায় একটি ফর্ম দিয়ে মুছে ফেলার জন্য আমার অবজেক্টগুলি নির্বাচন করতে হবে। এবং তারপরে ফর্ম থেকে আমার ভিউ পিপিতে ফিরে আসা ডেটা প্রক্রিয়া করুন। তারপরে ফর্মটি কীভাবে ফিরে এসেছে তার মাধ্যমে লুপটি ডেটা দ্বারা লুপিং হিসাবে মুছে ফেলা হয়। তবে আমি জানতে চেয়েছিলাম জাঙ্গোতে এটি বাস্তবায়নের জন্য সর্বোত্তম অনুশীলন কী।
ডিন

আহা, আমার ভুল! আমি হয় তৃতীয় পক্ষের অ্যাপ্লিকেশনটি ব্যবহার করব, অথবা এর সাথে জেনেরিক ভিউ করব ModelForm
ম্যাট লুঙ্গো

8
@ ডিয়ান, মুছে ফেলার দৃশ্যটি একবার দেখুন। অথবা আপনি কেবল নিজের মতামত লিখতে পারেন ... আমি বলতে চাইছি শেষ পর্যন্ত আপনি সম্ভবত আপনার মডেলটিতে পিকেগুলির একটি তালিকা পেয়েছেন এবং মুছে ফেলার আহ্বান জানাচ্ছেন ... MyModel.objects.filter(id__in=request.POST.getlist('delete_list')).delete()এবং আমি নিশ্চিত যে আপনি এলোমেলোভাবে সমস্ত ব্যক্তি মুছতে পারবেন না তা নিশ্চিত করার জন্য আপনি কিছু চান আপনার ডিবিতে পিকেগুলি অনুমান করে অবজেক্টগুলি।
ইউজি 'টোমিটা' টোমিতা

4
@ ডিয়ান, আপনার প্রশ্নের সম্পর্কে আরও কিছু না বুঝে উত্তর দেওয়া শক্ত। আপনাকে কেবল এমন একটি ফর্ম তৈরি করতে হবে যা ব্যবহারকারীর সঠিক মুছার মানদণ্ড নির্বাচন করতে দেয় (যা কিছু হতে পারে - এমনকি কোনও ইনপুট বাক্স যেখানে একটি আইডি নম্বর টাইপ করে ... তবে সম্ভবত আরও জটিল), এমন একটি দৃষ্টিভঙ্গি তৈরি করুন যা এতে সাড়া দেয় ফর্ম, সম্ভবত বৈধতা (অনুমতি) সম্পাদন করে, এবং শেষ পর্যন্ত সেই filter(foo).delete()পদ্ধতিটি চালায় ।
যুজি 'টোমিটা' টমিতা

4
এই কাঠামোটি না আসার অন্যতম কারণ হ'ল @ ইউজিটোমিটা উল্লিখিত সম্পাদনা / মোছা এবং অন্যান্য জটিলতার জন্য অনুমোদনের প্রশ্ন। আপনার যদি সত্যই জটিল ফিল্টারিংয়ের প্রয়োজন হয়, জ্যাঞ্জো-ফিল্টারিং পরীক্ষা করে দেখুন এবং ব্যবহারকারী অনুমোদিত হলে কোয়েসারেট.ডিলিট () নামক একটি মুছুন বোতাম যুক্ত করুন।
ম্যাট লুঙ্গো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.