0

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.

  1. Amerika -
  2. NewYork
  3. Amerika - Teksas
  4. 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 
    ) 

cevap

0

Sen olarak test.html formu medyayı yüklemek gerekir {{form.media}} veya için javascript/css dosyalarını eklemek için {{location_form.media}} durumunuz.