我想用一个选择域制作一个Django表单,该表单可以根据一组定义的值自动完成。 基本上,我有一个名为播放器的数据库表,并且其中有一个属性播放器名。我想制作一个带有choicefield的表单,其中包含该玩家表中具有搜索可用性的数据, 这是我的尝试:
Views.py
Math.random()
urls.py
from django.shortcuts import render,redirect
from django import forms
from pages.models import Team ,Player,Match
from decimal import *
from django.contrib.admin.widgets import FilteredSelectMultiple
from dal import autocomplete
class PlayerAutocomplete(autocomplete.Select2ListView):
def get_list(self):
x=[]
y=Player.objects.values('PlayerName')
for i in range(0,len(y)):
x.append(y[i]['PlayerName'])
return x
class PlayingForm(forms.Form):
def get_choice_list():
x=[]
y=Player.objects.values('PlayerName')
for i in range(0,len(y)):
x.append(y[i]['PlayerName'])
return x
player = autocomplete.Select2ListChoiceField(choice_list=get_choice_list,widget=autocomplete.ListSelect2(url='player-autocomplete'))
add_playing_teams.html
from django.urls import path
from django.conf.urls import url
from pages import views
from pages.views import PlayerAutocomplete
urlpatterns = [
path('',views.home,name='home'),
path('about/',views.about,name='about'),
path('administrator/',views.administrator,name='administrator'),
path('add_team/',views.add_team,name="add_team"),
path('add_player/',views.add_player,name="add_player"),
path('add_match/',views.add_match,name="add_match"),
path('add_playing/',views.add_playing,name="add_playing"),
path('add_playing_teams/',views.add_playing_teams,name="add_playing_teams"),
url(
r'^player-autocomplete/$',
PlayerAutocomplete.as_view(),
name='player-autocomplete',
),
]