বলুন আমার মধ্যে নিম্নলিখিতগুলি রয়েছে 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
তা আমি জানি না এবং এটি কীভাবে অ্যাডমিন ইন্টারফেসের বাইরে কাজ করবে তা আমি পরিষ্কার নয়।
ধন্যবাদ। (এটি একটি দুর্দান্ত বেসিক অনুরোধের মতো বলে মনে হচ্ছে তবে আমার যদি নতুন কিছু ডিজাইন করা উচিত তবে আমি পরামর্শের জন্য উন্মুক্ত))