如何允许用户添加不在django Choices列表中的选项

时间:2017-06-28 21:58:35

标签: django forms

当用户在模型的选择列表中选择要选择的内容时,如果他们找不到他们想要的选择,如何让他们添加新的选项,并将他们的选择存储为他们添加的值

2 个答案:

答案 0 :(得分:0)

有几种方法可以满足您的需求,如果您希望所有用户都能拥有新的选择,您必须将所有内容保存在模型中并从那里取出选择,如果您想拥有一个& #34;预设变量"然后只是为你的用户保存新的,只需将新的一个保存在charfield的用户选择中,如果你告诉我你想要什么方法,我可以给你一个更广泛的解释。

答案 1 :(得分:0)

这不是一个字段上的选择。它们用于选项集,如果代码不更改则不会更改。

如果您需要在不修改代码的情况下修改选项,那么自然的方法就是使用数据库。外键是正确使用的工具:

class Gender(models.Model):
    name = models.CharField(max_length=50)
    description = models.TextField()

    def __str__(self):
        return self.name

class Person(models.Model):
    first_name = models.CharField(max_length=32)
    last_name = models.CharField(max_length=100)
    gender = models.ForeignKey(Gender)

在您的admin.py中:

from .models import Gender
from django.contrib import admin

admin.site.register(Gender, admin.ModelAdmin)

现在管理员可以添加额外的性别,这将为所有人提供。