Python Django Smart Select不能正常工作

时间:2014-09-09 17:47:32

标签: python django select django-models django-forms

我是网络开发人员的初学者,这次我真的需要帮助,因为我使用Django,我有智能选择的问题。我使用此软件包允许用户选择依赖于国家/地区的城市。 我已经安装了,我确实像他说的那样,它在管理页面中工作但不幸的是,当我访问我的网站时,他们不能工作

model.py:

class Continent(models.Model):
    continent = models.CharField(max_length=200)  
    def __unicode__(self):
        "pour retourner Site"
        return self.continent

class Country (models.Model):
    continent = models.ForeignKey(Continent)        
    country = models.CharField(max_length=45)
    def __unicode__(self):
        return self.country


class Site(models.Model):
    nom = models.CharField(max_length=100)
    adresseSt = models.CharField(max_length=100)
    country = models.ForeignKey(Continent, default=1 )
    ville = ChainedForeignKey(
        Country, 
        chained_field="country", 
        chained_model_field="continent", 
        show_all = False,
        auto_choose = True
    )      
    codePostale = models.IntegerField(max_length=5)

    siege = models.NullBooleanField(default=False)
    telephone = models.IntegerField(max_length=10, null=True,blank = True)
    fax = models.IntegerField(max_length=10, null=True, blank=True)
    email = models.EmailField(max_length=150, null=True, blank=True)
    Correspondant = models.CharField(max_length=100, null=True, blank=True)
    secteur = models.CharField(max_length=100, null=True, blank=True)
    codeClient = models.ForeignKey('Client')
    contact = models.ManyToManyField(Contact, blank=True, null=True, through='Emploi')

    def __unicode__(self):
        "pour retourner Site"
        adresse = self.nom
        return adresse 

views.py:

class SiteForm(forms.ModelForm):
    class Meta:
        model = Site
        exclude = ['siege' ,'contact']


def ajouterSt(request):
    if request.method == 'POST':
        form = SiteForm(request.POST or None)  
        if form.is_valid(): 
            save_it = form.save(commit=False)
            save_it.save()
            return render(request, 'gestion/home.html')     
    else:
        form = SiteForm() 
    return render(request, 'gestion/ajouterSt.html', locals())

和模板:ajouterSt

{% extends 'base.html' %} 

{% block content %}
        <h2> formulaire </h2>

        <form action="/ajouterSt/" method="POST">
            {% csrf_token %}
            {{ form.as_p }}
            <input type="submit" value="Submit" />
        </form>
{% endblock %}

2 个答案:

答案 0 :(得分:0)

可能你必须在你的网页上实现一些javascript。与工作管理页面比较。那里加载了哪些javascript文件?你也在页面上加载它们吗?

答案 1 :(得分:0)

更新 - 2017年5月

抱歉,截至目前情况有所改变,我的表单也拒绝加载,但是加载了一段时间,所以你必须在 jquery 之后包含下面的标记,包含 chainedfk.js

的标记

这对于django 1.10.5和Django 1.11都很有效 - (这篇文章的最新版本)

<script type="text/javascript" src="{% static 'smart-selects/admin/js/bindfields.js' %}"></script>