2012-06-03 1 views
0

장고에 대한 좋은 자습서를 찾으려고합니다. 모델에 여러 태그를 만드는 방법입니다. 예를 들어Django 다중 태그 필드

:

class Tag(models.Model): 
    name = models.CharField() 

class Sample(models.Model): 
    name = models.CharField() 
    urlA = models.CharField() 
    urlB = models.CharField() 
    tagA = models.ManyToManyField(Tag) 
    tagB = models.ManyToManyField(Tag) 
I의 저장 방법에있어서, 입력 필드와 별도의 ','분할과 같은 태그를 표시하고자

. 그래서 2 태그 필드에 2 개의 다른 입력을보고 싶습니다.

쉬운 튜토리얼을 알고 있거나 알 수있는 방법이 있다면 알려주세요! :)

고마워요!

답변

0

편집 : 실제 테이블을 놓을 필요는 없습니다. 당신은 당신이보기에 당신이 원하는 queryset을 생성 할 수 있습니다. url conf는 여러 URL의 상세보기를 표시하도록 설정할 수 있습니다. 아직 이해가 안되면 질문을 수정하십시오.

여러 가지 태그가 있으면 m21 또는 m2m으로 분류됩니다. 따라서 태그를 만들 때 태그를 하나씩 추가 할 수 있습니다. 당신은 Django ORM이 관리 기능 중 일부와 함께 제공해야하는 것에 익숙합니까? 문서를 잘 살펴보십시오. 이 문제에 대한 귀하의 접근 방식은 합리적입니다. 내가 천재가 아니라는 잘못된 방향으로 문지르지 않으려 고합니다. 당신은 그렇게 할 것입니다.

class Tag(models.Model): 
    title = models.CharField(max_length=250, blank=True) 
    slug = models.SlugField(blank=True 

    class Meta: 
     verbose_name = "tag" 
     verbose_name_plural = "tags" 
     ordering = ['title'] 

    @models.permalink 
    def get_absolute_url(self): 
    return "/tags/%s/" % self.slug 

class Entry(models.Model): 
    title = models.CharField(max_length=250, blank=True) 
    body = models.TextField() 
    tags = models.ManyToMany('Tag') 
    slug = models.SlugField() 


    @models.permalink 
    def get_absolute_url(self): 
     return "/blog/%s/" % self.slug 

EntryAdmin 및 TagAdmin 모델에 대해 더 많은 코드가 있습니다. 다른 많은 것들도 수행 할 수 있습니다. 더 명확히 할 수 있다면 그걸로 무엇을 성취하려고하는지 잘 모르겠습니다. 고맙습니다. 위의 내용은 제가 어떻게 접근 할 것인지에 대한 대략적인 예입니다.

+0

나는 당신이 나를 오해 한 것 같아요. 태그 테이블에 2 번 모델에 가입시키고 싶습니다. 두 개 (나중에 두 개 이상)의 URL 필드가 필요하고 모든 태그에 대해 2 개 (나중에 더 많은) differet 태그 목록을 보지 않아도됩니다. 2 개의 크로스 테이블이 필요해. –

+0

어쩌면 내가 오해하고 있습니다. 왜냐하면 내 생각에 당신의 접근 방식이 옳은 것처럼 보이지 않기 때문입니다. 당신의 접근 방식을 이해합니다. 각 모델에 대해 두 세트의 태그가 필요하다는 것을 당신이하려는 것은 무엇입니까? 나는 장고 태그를 사용하여 나에게 태그 = TagField()처럼 간단하게 사용한다. 그런 다음 내 모델 편집 인스턴스에서 태그를 쉼표로 구분 된 목록으로 입력 할 수 있습니다.이 방법은 더 많은 기능을 제공하므로 사용자에게 보여준 방식보다 우수하며 더하기 버튼을 계속 눌러 해당 인스턴스에 다른 m2m 태그 관계를 추가 할 필요가 없습니다 . – eusid

+0

예, 모델에 두 세트 이상의 태그가 없어졌습니다. 태그를 사용하는 경우 tagA = TagField() 및 tabB = TagField() 만 사이트의 양식과 자동으로 관리자가 처리 할 수 ​​있습니다. 지금은 관리자가 사용하고 싶지 않습니다. (내가 많은 작업을했다 느린 대답에 대해 유감스럽게 생각한다) –