我对django-taggit的使用有疑问。我有一个UserProfile(我在设置文件中使用AUTH_PROFILE_MODULE附加),其中我为导师存储了一组技能,例如:,等等。然后,当有人想要请求辅导会话时,他们可以写一个什么的描述他们想要并为他们的请求放置标签。 (例如,我想要一个精通微积分和物理学的导师)。如果我让网站的用户选择他们自己的标签,那么我担心我们最终会遇到“标签地狱”,我们有标签,如,等等。所以,我想标记技能,但只能从表格中当我们添加人员时,我会填充管理员。这避免了扩散问题(类似于stackoverflow的工作原理)。
以下是一些试用代码:
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()
或者,使用Tags类更好:
class Tags:
name=models.CharField(max_length=100, blank=False, unique=True)
并在TutoringSession和UserProfile中设置与它的ManyToMany关系?
谢谢!
我应该注意这与问题有关: What benefit does Django-Taggit provide over a simple ManyToManyField() implementation of tagging?
除了在该示例中,我们可能希望将允许的答案集限制为红色和紫色(我们已在表中定义,因为它可能会更改)
答案 0 :(得分:1)
因此,您需要一组预定义标记,并且“用户”和“TutoringSessions”应与这些标记中的一个或多个相关联。多数民众赞成(据我所知)m2m-fields的用途。 也许taggit有一些可用性优势(我不熟悉它),但这里描述的功能可以通过简单的m2m字段来实现。