Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 单选用于选择模型中多个的默认值_Django_Django Models_Django Admin - Fatal编程技术网

Django 单选用于选择模型中多个的默认值

Django 单选用于选择模型中多个的默认值,django,django-models,django-admin,Django,Django Models,Django Admin,我有一个相当简单的外键关系,由Django的admin中的内联显示: # models class Profile(models.Model): name = models.CharField(max_length=30) class EmailAddress(models.Model): address = models.EmailField() is_default = models.BooleanField() # admins class ProfileAdm

我有一个相当简单的外键关系,由Django的admin中的内联显示:

# models
class Profile(models.Model):
    name = models.CharField(max_length=30)

class EmailAddress(models.Model):
    address = models.EmailField()
    is_default = models.BooleanField()

# admins
class ProfileAdmin(admin.ModelAdmin):
    class EmailAddressInline(admin.TabularInline):
        model = EmailAddress

    inlines = (EmailAddressInline,)
我只想使用管理员页面上的单选按钮,选择其中一个电子邮件地址,因为
是默认的


这可能吗

我认为这可能是一个糟糕的设计。您应该将默认电子邮件的id存储在配置文件表中,这样您就可以在数据库和程序级别确保一个配置文件的两个电子邮件地址不会设置为默认。考虑一下更改您的数据库结构。

但是,我如何在管理中显示它?我正在寻找一个很好的,易于使用的非开发人员的数据输入管理网站。如果你使用我的设计,它不会影响你的用户界面,你可以完全实现你想要的。这种设计我不确定。我不熟悉django,我使用symfony2,它的原理与django非常相似,在symfony2中,我可以使用我的设计实现这个目标,但我不能使用你的。这就是我所能帮助的。如果一个配置文件默认有两封电子邮件(比如说因为一个bug),会怎么样?所以我真的想说服你改变。相信我,我已经试过了。不幸的是,Django的管理系统没有发挥太好。我问这个问题的唯一原因是,如果有
个人.default\u email\u地址
个人.email\u地址
,则不起作用。根本没有办法在管理中很好地显示它。不过,我相信你,我不确定“它没有很好地显示”这个错误是否应该通过一个糟糕的后端设计来解决。我宁愿去改变模板。等待一位django大师,看看他说了什么。