Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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

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
Python 使用django taggit,是否可以将标记限制为预先批准的值?_Python_Django_Django Models - Fatal编程技术网

Python 使用django taggit,是否可以将标记限制为预先批准的值?

Python 使用django taggit,是否可以将标记限制为预先批准的值?,python,django,django-models,Python,Django,Django Models,我对django taggit的使用有一个问题。我有一个UserProfile(我使用设置文件中的AUTH_PROFILE_模块附加了它),在其中我为导师存储了一组技能,例如:,等等。然后,当有人想要申请辅导课程时,他们可以写下他们想要的描述,并为他们的请求放置标签。(例如,我想要一位精通微积分和物理的导师)。如果我让网站的用户选择他们自己的标签,那么我担心我们可能最终会遇到“标签地狱”,在那里我们有标签,例如,等等。因此,我想标记技能,但只从我在添加人员时填充在管理中的表中。这避免了扩散问题(

我对django taggit的使用有一个问题。我有一个UserProfile(我使用设置文件中的AUTH_PROFILE_模块附加了它),在其中我为导师存储了一组技能,例如:,等等。然后,当有人想要申请辅导课程时,他们可以写下他们想要的描述,并为他们的请求放置标签。(例如,我想要一位精通微积分和物理的导师)。如果我让网站的用户选择他们自己的标签,那么我担心我们可能最终会遇到“标签地狱”,在那里我们有标签,例如,等等。因此,我想标记技能,但只从我在添加人员时填充在管理中的表中。这避免了扩散问题(类似于stackoverflow的工作原理)

以下是一些试用代码:

并在TutoringSession和UserProfile中设置与它的多人关系

谢谢

我应该指出,这与以下问题有关:


除此之外,在该示例中,我们可能希望将允许的答案集限制为红色和紫色(我们在表中定义了红色和紫色,因为它可能会更改)

因此您需要一组预定义的标记,并且用户以及教程会话应该与这些标记中的一个或多个相关。这就是(据我所知)m2m场的用途。 也许taggit有一些可用性优势(我不熟悉),但这里描述的功能可以通过简单的m2m字段实现

from django.db import models </br>
from django.contrib.auth.models import User
from taggit.managers import TaggableManager

class BaseUser(models.Model):
    class Meta:
        abstract=True
    first_name=models.CharField(max_length=100)
    skills=TaggableManager()

class UserProfile(BaseUser):
    user=models.ForeignKey(User,unique=True)

class TutoringSession(models.Model):
    title=models.CharField(max_length=100,blank=False)
    slug=models.SlugField(max_length=250,unique=True,blank=False,editable=False)
    tags=TaggableManager()
class Tags:
     name=models.CharField(max_length=100, blank=False, unique=True)