在视图中传递参数 - Django

时间:2017-10-25 16:33:07

标签: django forms url parameters views

我有以下情况:

我创建了globalModels(赛季,球队,球员,裁判)。另外,我创建了seasonModel(SeasonTeam,SeasonPlayer,SeasonReferee),因为我想记录每个特定赛季的球队统计数据,与球员和裁判一样),我还会将每个SeasonTeam的统计数据汇总到globalModel球队。

我正在建立管理平台。所以我有下一个网址:

adminSite.urls

url(r'^$', views.homeAdmin, name='homeAdmin'),
url(r'^addGlobal/', include('globalModels.urls', namespace='addGlobal')),
url(r'^addSeasonal/', include('seasonalModels.urls', namespace='addSeasonal'))

globalModels.url

url(r'^$', admin_views.addGlobal, name='addGlobal'),
url(r'^addSeason/', views.addSeason, name='addSeason'),
url(r'^addPlayer/', views.addPlayer, name='addPlayer'),
url(r'^addTeam/', views.addTeam, name='addTeam'),
url(r'^addReferee/', views.addReferee, name='addReferee')

现在,为了不必每次我想添加一个新的seasonModel来选择季节(每个seasonModel中的foreignKey),我想先选择一个季节,然后让管理员选择添加一个seasonTeam,seasonalPlayer ...

你将如何做到这一点?我想过两种可能性:

前端

显示注册为div的季节列表,并使用JS获取管理员点击的ID:

{% for season in seasons %}

        <div id="{{ season.season }}" class="adminButton chooseSeason ">
            {{ season.season }}
        </div>

{% endfor %}

然后将其传递到网址:

$(".chooseSeason").click(function (){
    var season = $(this).attr('id');
    window.location.href = "http://localhost:8000/admin-site/addSeasonal/" + season + "/";

 })

在这种情况下,我有我的:

seasonModels.py

url(r'^chooseSeason', admin_views.addSeasonalChooseSeason, name='addSeasonalChooseSeason'),

url(r'^([0-9]{4})-([0-9]{4})/', admin_views.addSeasonal, name='addSeasonal'),

url(r'^([0-9]{4})-([0-9]{4})/addTeam/', views.addSeasonalTeam, name='addSeasonalTeam'),
url(r'^([0-9]{4})-([0-9]{4})/addPlayer/', views.addSeasonalPlayer, name='addSeasonalPlayer'),

但我错过了如何正确注册命名空间:

addSeasonal.html

<div id="addTeamButton" class="adminButton">
    <a href="{% url 'admin-site:addSeasonal:addSeasonalTeam:season1-season2' %}"> Añadir Equipo </a>
</div>

<div id="addPlayerButton" class="adminButton">
    <a href="{% url 'admin-site:addSeasonal::addSeasonalPlayer:season1-season2' %}"> Añadir Jugador </a>
</div>

&#39; addSeasonalTeam&#39;不是注册名称空间&#39; admin-site:addSeasonal&#39;

有关如何避免此问题的任何想法吗?

返回结束

传递作为ModelForm注册的可用季节,并使用提交作为与请求一起传递的参数,以便在将用于在数据库中添加新对象的视图中进行过滤

在这种情况下,如果作为globalModel的季节是一个charField,我如何强制该表单成为一个选项列表,其中注册了一个期望输入的charField的季节?

很抱歉这篇长篇文章,我希望你能理解我的意图并帮助我。

提前致谢!

PR

0 个答案:

没有答案