2011-02-13 33 views
3

我有一個關於使用django-taggit的問題。我有一個UserProfile(我在設置文件中使用AUTH_PROFILE_MODULE附加),在其中存儲了一組技能,例如:,等等。然後,當有人想要請求輔導會話時,他們可以寫一個關於什麼的描述他們想要併爲他們的要求放置標籤。 (例如,我想要一名熟練掌握微積分和物理學的導師)。如果我讓站點的用戶選擇他們自己的標籤,那麼我擔心我們最終可能會在標籤中出現「標籤地獄」,例如,等等。所以,我想標記技能,但只能從表格當我們添加人員時,我在管理員中填充。這避免了擴散問題(類似於stackoverflow的工作原理)。使用django-taggit,是否可以將標籤限制爲預先批准的值?

下面是一些試驗代碼:

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) 

,併成立兩個TutoringSession和用戶配置一個多對多的關係呢?

謝謝!

我要指出,這是關係到一個問題: What benefit does Django-Taggit provide over a simple ManyToManyField() implementation of tagging?

除了在這個例子中,我們可能希望限制該允許答案紅色和紫色(我們在一個表中,因爲已經定義的它可能會改變)

回答

1

所以你想要一組預定義的標籤,用戶以及TutoringSessions應該與一個或多個這些標籤相關聯。那就是(據我所知)什麼是m2m字段。 也許taggit有一些可用性的優點(我不熟悉它),但是這裏描述的功能可以通過簡單的m2m字段來實現。

相關問題