पर आधारित विदेशीकी सीमा मेरे पास दो ऐप्स हैं, family
और person
। Person
कक्षा में, मैं उपलब्ध और father
विकल्पों को उन वस्तुओं तक सीमित करना चाहता हूं जो पहले से ही उसी family
से बनाए गए हैं। अगर मैं family_pk
का उपयोग कर सकता हूं तो person/views.py:PersonCreateview
में get_initial()
में सेट किया गया है, और family_pk
का उपयोग mother
और father
के विदेशीके विकल्पों को प्रतिबंधित करने के लिए करें, ऐसा लगता है कि यह तर्क तर्क समूह का एक शानदार तरीका हो सकता है। क्या यह संभव है?सीबीवी CreateView सीमा get_initial()
family/models.py
class Family(models.Model):
lastname=models.CharField(max_length=100)
def __str__(self):
return self.lastname
family.views.py
from django.views import generic
from django.core.urlresolvers import reverse
from .models import Family
class FamilyListView(generic.ListView):
context_object_name='family_list'
model=Family
class FamilyDetailView(generic.DetailView):
context_object_name='family'
model=Family
pk_url_kwarg='family_pk'
class FamilyCreateView(generic.CreateView):
model=Family
def get_success_url(self,**kwargs):
return reverse('family-detail',kwargs={'family_pk':self.object.pk})
person/models.py
class Person(models.Model):
fields=('family','firstname','mother','father')
family=models.ForeignKey(Family)
firstname=models.CharField(max_length=100)
mother=models.ForeignKey('self',blank=True,null=True)
father=models.ForeignKey('self',blank=True,null=True)
def __str__(self):
return self.firstname
person/views.py
from django.views import generic
from django.core.urlresolvers import reverse
from django.shortcuts import get_object_or_404
from .models import Person
from family.models import Family
class PersonDetailView(generic.DetailView):
model=Person
pk_url_kwarg='person_pk'
class PersonCreateView(generic.CreateView):
model=Person
def get_initial(self):
family=get_object_or_404(Family,pk=self.kwargs.get('family_pk'))
return {'family':family,}
def get_success_url(self,**kwargs):
return reverse('family:family-detail',args=[self.kwargs['family_pk']])
मैं get_initial विश्वास नहीं है() अभी भी यहाँ आवश्यक होगा, लेकिन यह अन्य टुकड़े के लिए अपने मामले में आवश्यक हो सकता है। –