相关疑难解决方法(0)

DJANGO:ModelChoiceField optgroup标签

如何在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)

python django django-templates django-forms

33
推荐指数
2
解决办法
1万
查看次数

Django ModelForm 外键 optgroup 选择

我正在构建一个简单的问答网站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)

python django django-forms

5
推荐指数
1
解决办法
1000
查看次数

标签 统计

django ×2

django-forms ×2

python ×2

django-templates ×1