首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从引用CheckboxInput的OneToOneField的ModelForm中呈现BooleanFields?

如何从引用CheckboxInput的OneToOneField的ModelForm中呈现BooleanFields?
EN

Stack Overflow用户
提问于 2013-06-11 12:58:15
回答 2查看 394关注 0票数 1

给出了models.py中的下列模型

代码语言:javascript
复制
class Profile(models.Model):
    name = models.CharField(max_length=30)
    email_address = models.CharField(max_length=30)
    password = models.CharField(max_length=30)
    preferences = models.OneToOneField("Preferences")

    def __unicode__(self):
        return u"%s" % self.name

class Preferences(models.Model):
    likes_hugging = models.BooleanField(default=False)
    despises_men = models.BooleanField(default=False)

下面是forms.py中的下列表格..。

代码语言:javascript
复制
class PreferencesModelForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ("preferences",)

..。产生以下结果:

但是,我如何得到下面的结果而不是

EN

回答 2

Stack Overflow用户

发布于 2013-06-13 04:29:31

您需要覆盖默认的小部件。如下所示:

代码语言:javascript
复制
from django.forms import ModelForm, Textarea
from myapp.models import Author

class AuthorForm(ModelForm):
    class Meta:
        model = Author
        fields = ('name', 'title', 'birth_date')
        widgets = {
            'name': Textarea(attrs={'cols': 80, 'rows': 20}),
        }

您可以阅读完整的docs 这里。问题是,您是否正确地使用了PreferencesModelForm?模型应该是Preferences。如果您真的试图使用Profile字段为preferences模型创建表单,则可以使用内联格式集。你可以读这里

票数 0
EN

Stack Overflow用户

发布于 2014-12-19 19:29:48

在您的情况下,您需要使用收音机而不是复选框,因为您有一个OneToOne关系。

只需在表格中添加:

代码语言:javascript
复制
widgets = {
        'preferences': forms.RadioSelect(),
    }

PS:这个问题是从去年开始的,我希望你已经解决了它:)我从谷歌来到这里,希望能帮助处于同样情况下的人们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17044726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档