Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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_Forms - Fatal编程技术网

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

如何允许用户添加不在django选项列表中的选项,django,forms,Django,Forms,当用户在模型的选项列表中选择要选择的内容时,如果他们找不到要选择的内容,您如何让他们添加一个新的内容,并将其选择存储为他们添加的值。如果您希望所有用户都能有新的选择,有几种方法可供选择,你必须把所有的东西都保存在一个模型中,并从中取出选择,如果你想有一个“变量预设”,然后只为你的用户保存新的,只需将用户选择中的新的直接保存在charfield中,如果你告诉我你想要什么方法,我可以给你一个更广泛的解释 这不是对字段进行选择的目的。它们用于一组选择,如果代码没有更改,这些选择也不会更改 如果您需要可

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

如果您希望所有用户都能有新的选择,有几种方法可供选择,你必须把所有的东西都保存在一个模型中,并从中取出选择,如果你想有一个“变量预设”,然后只为你的用户保存新的,只需将用户选择中的新的直接保存在charfield中,如果你告诉我你想要什么方法,我可以给你一个更广泛的解释

这不是对字段进行选择的目的。它们用于一组选择,如果代码没有更改,这些选择也不会更改

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

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)
现在管理员可以添加额外的性别,这将适用于所有人