如何在ModelChoiceField中设置optgroup标签?
这是一个例子:
models.py
class Link(models.Model):
config = models.ForeignKey(Config)
name = models.URLField(u'Name', null=True, max_length=50)
gateway = models.IPAddressField(u'Gateway', null=True)
weight = models.IntegerField(u'Weight', null=True)
description = models.TextField(u'Description', blank=True)
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
forms.py
class LinkForm(ModelForm):
config = ModelChoiceField(queryset=Config.objects.all(), empty_label="Choose a link",widget=GroupedSelect())
class Meta:
model = Link
Run Code Online (Sandbox Code Playgroud)
我想像我这样渲染我的ChoiceField:
example.html的
<select id="id_config" name="config">
<option selected="selected" value="">Choose a link</option>
<optgroup label="Configuration" >
<option value="8">Address: 192.168.1.202/255.255.255.0 </option>
<option value="9">Address: 192.168.1.240/255.255.255.0 </option>
<option value="10">Address: 192.168.3.1/255.255.255.0 </option>
</optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)
**更新**
class GroupedSelect(Select):
def render(self, name, …Run Code Online (Sandbox Code Playgroud) 我正在构建一个简单的问答网站Django 1.8。
我想根据前键创建选择 optgroup(详细信息如下)。
我怎样才能做到这一点?
大学
class College(models.Model):
title = models.CharField(max_length=255)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
slug = models.SlugField(blank=True, max_length=100)
university = models.ForeignKey(to=University, related_name='college_list')
Run Code Online (Sandbox Code Playgroud)
大学
class University(models.Model):
title = models.CharField(max_length=255)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
slug = models.SlugField(unique=True, blank=True, max_length=100)
Run Code Online (Sandbox Code Playgroud)
题
class Question(models.Model):
title = models.CharField(max_length=150)
body = RedactorField(verbose_name=u'Vsebina')
slug = models.SlugField(unique=True, blank=True, max_length=100)
college = models.ForeignKey(to=College, default=1, related_name='questions')
Run Code Online (Sandbox Code Playgroud)
问题表
class CreateQuestionForm(ModelForm):
class Meta:
model = Question
fields = ['title', 'body', 'college']
Run Code Online (Sandbox Code Playgroud)
模板(显示选择)
{{ form.college }} …Run Code Online (Sandbox Code Playgroud)