Python 创建成员ID的下拉菜单
我有一个模型成员,其中包含一个名为Member\u id的规范Python 创建成员ID的下拉菜单,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我有一个模型成员,其中包含一个名为Member\u id的规范 class Member(models.Model): member_id = models.SlugField(max_length=10) name = models.CharField(max_length=200) gender = models.CharField(max_length=1, choices=GENDER_CHOICES) mobile = models.SlugField(
class Member(models.Model):
member_id = models.SlugField(max_length=10)
name = models.CharField(max_length=200)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
mobile = models.SlugField(max_length=20)
def __str__(self):
return self.name
我想创建一个存储成员ID的下拉菜单,供用户在select_member.html
中选择
现在,我在forms.py中有这样的内容:(很确定它是错的)
以下观点:
class SelectView(generic.ListView):
template_name = 'expcore/select_member.html'
model = Activity
def select_member(request):
form = SelectForm()
if request.method == 'POST':
form = SelectForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/questions/')
else:
form = SelectForm()
return render(request, 'select_member.html', {'form': form})
网址:
url(r'^activity/(?P<activityname>[^/]+)/member/$', views.SelectView.as_view(), name='select_member'),
url(r'^activity/(?P[^/]+)/member/$,views.SelectView.as_view(),name='select_member'),
我的select_member.html中没有任何内容,因为我不确定该放什么
有人能帮我完成表单、视图和HTML吗?我希望能够调用所有成员id,但member.member\u id.objects.all()不起作用
另外,如果有人能告诉我如何正确调用所有存储的成员id,而不是不正确的member.member\u id.objects.all(),那就太好了。member.objects.values('member\u id')提供了一个字典列表,其中的值结构为{'member\u id':value} 如果您只需要id,您可以创建Member.objects.values\u list('Member\u id',flat=True),它只会为您提供成员id列表 无论如何,您尝试使用ModelChoiceField,它需要一个模型实例查询集,并尝试向它传递一个slug列表 你想做的是 modelcoocefield(queryset=Member.objects.all(),to_field\u name='Member\u id') 通常,
modelcoocefields
将id作为选项获取,但您可以使用覆盖它,以_field_name
:
你不需要把
{{{form}}
放进去吗?我认为一个modelcoocefield
还是做了一个select元素(就编辑它的Member.objects.values('Member_id')
而言,如果我理解正确,你的意思是我只需要在html中放入{{form}}吗?当我将它改为memberid=forms.modelcoocefield时,在我的forms.py中的classSelectForm(forms.form)下(queryset=Member.objects.all(),to_field_name='Member\u id')
我得到一个属性错误,说“type object'Member'没有属性'Member\u id'”。但是,当我尝试memberid=forms.ModelChoiceField(queryset=Member.objects.values\u list('Member\u id',flat=True))
时,我没有得到一个错误(因此我认为它有效).你认为你能帮我解决HTML问题吗?视图对吗?你用的是哪种Django?
url(r'^activity/(?P<activityname>[^/]+)/member/$', views.SelectView.as_view(), name='select_member'),