বলুন আমার মধ্যে নিম্নলিখিতগুলি রয়েছে models.py:
class Company(models.Model):
name = ...
class Rate(models.Model):
company = models.ForeignKey(Company)
name = ...
class Client(models.Model):
name = ...
company = models.ForeignKey(Company)
base_rate = models.ForeignKey(Rate)
অর্থাত একাধিক হয় Companiesপ্রতিটি একটি সীমার হচ্ছে Ratesএবং Clients। প্রত্যেকের Clientএকটি বেস থাকা উচিত Rateযা তার পিতামাতার থেকে বেছে নেওয়া হয় Company's Rates, অন্যটি নয় Company's Rates।
একটি যুক্ত করার জন্য একটি ফর্ম তৈরি করার সময় Client, আমি Companyপছন্দগুলি অপসারণ করতে চাই (এটি যেমন Companyপৃষ্ঠায় একটি "ক্লায়েন্ট যুক্ত করুন" বোতামের মাধ্যমে ইতিমধ্যে নির্বাচন করা হয়েছে ) এবং Rateপছন্দগুলিও এতে সীমাবদ্ধ করুন Company।
জ্যাঙ্গো ০.০ এ কীভাবে যাব?
আমার বর্তমান forms.pyফাইলটি এই মুহুর্তে কেবলমাত্র বয়লারপ্লেট:
from models import *
from django.forms import ModelForm
class ClientForm(ModelForm):
class Meta:
model = Client
এবং views.pyএটিও প্রাথমিক:
from django.shortcuts import render_to_response, get_object_or_404
from models import *
from forms import *
def addclient(request, company_id):
the_company = get_object_or_404(Company, id=company_id)
if request.POST:
form = ClientForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(the_company.get_clients_url())
else:
form = ClientForm()
return render_to_response('addclient.html', {'form': form, 'the_company':the_company})
জ্যাঙ্গো 0.96-তে আমি টেমপ্লেটটি রেন্ডার করার আগে নীচের মতো কিছু করে এই হ্যাক করতে সক্ষম হয়েছি:
manipulator.fields[0].choices = [(r.id,r.name) for r in Rate.objects.filter(company_id=the_company.id)]
ForeignKey.limit_choices_toপ্রতিশ্রুতিবদ্ধ বলে মনে হচ্ছে তবে কীভাবে পাস করতে হবে the_company.idতা আমি জানি না এবং এটি কীভাবে অ্যাডমিন ইন্টারফেসের বাইরে কাজ করবে তা আমি পরিষ্কার নয়।
ধন্যবাদ। (এটি একটি দুর্দান্ত বেসিক অনুরোধের মতো বলে মনে হচ্ছে তবে আমার যদি নতুন কিছু ডিজাইন করা উচিত তবে আমি পরামর্শের জন্য উন্মুক্ত))