içinde değil Django-smart-selects
kullanmayı denedim zincirleme forms
oluşturmak için izin vermelisiniz.Form düzgün çalışır ancak Template
Bu yüzden, projeme eklemeden önce basit bir örnek üzerinde denemeye karar verdim. Sorun, doğru olarak Admin
çalışır, ancak şablonda (görünüm yöntemi kullanılarak oluşturulan) çalışmaz.
Bu, herhangi bir hata ortaya çıkarmaz, ancak Continent
kıta açılır menüsünde seçtiğimde Country
aşağı açılır menüsünü doldurmaz.
Lütfen sorun, yönetimde doğru şekilde çalıştığı için MODELS.PY'de muhtemelen sorun olmadığını unutmayın.
- Amerika -
- NewYork Amerika - Teksas
- Afrika - Fas
iki biçimi vardır - Kıta ve Ülke:
3 Mekanlar vardır. Continent
'u seçmediysem, herhangi bir Ülke seçemiyorum. Amerika'yı seçersem, ikinci menü NewYork ve Texas ile doldurulur, ki bu doğrudur. Bu, Yönetici.
FORMS.PY:
class LocationForm(forms.ModelForm):
class Meta:
model = Location
fields = ('newcontinent','newcountry',)
VIEWS.PY:
def test(request):
location_form = LocationForm()
if request.method=='POST':
print request.cleaned_data
return render(request,'test.html', context={'location_form':location_form})
ADMIN.PY:
...
admin.site.register(Continent)
admin.site.register(Country)
admin.site.register(Location)
...
şablonunda, ben Kıta İşte
kod edilir seçebilir
URLS.PY:
...
url(r'^chaining/', include('smart_selects.urls')),
...
test.html:
{% extends "base.html" %}
{% block content %}
<form action="" method="post">{% csrf_token %}
{{ location_form }}
</form>
{% endblock %}
MODELS.PY:
class Continent(models.Model):
name = models.CharField(max_length=40)
def __str__(self):
return self.name
class Country(models.Model):
name = models.CharField(max_length=40)
continent = models.ForeignKey(Continent)
def __str__(self):
return self.name
from smart_selects.db_fields import ChainedForeignKey
class Location(models.Model):
newcontinent = models.ForeignKey(Continent)
newcountry = ChainedForeignKey(
Country, # the model where you're populating your countries from
chained_field="newcontinent", # the field on your own model that this field links to
chained_model_field="continent", # the field on Country that corresponds to newcontinent
show_all=True, # only shows the countries that correspond to the selected continent in newcontinent
)