2012-10-26 4 views
1

내 models.py 파일에 2 개의 모델이 있습니다. 장르와 AudioTracks. 각 트랙에는 장르가 지정됩니다. 따라서, 나는 ForeignKey 관계를 정의했다. 제 문제는 관리자보기에서 각 트랙 앞에 장르를 추가하려고 할 때 콤보 상자에서 선택 항목을 선택할 수 없다는 것입니다. 추가 기호 (예 : 녹색 +)를 클릭해야하며 장르 창이 나타나면 장르를 추가 할 수 있습니다.Django 관리자의 드롭 다운 상자가 선택 항목을 자동으로 채우지 않습니다.

하단의 작은 콤보 상자에서 트랙을 추가하고 장르를 선택하고 싶습니다. 여기

은 이미지입니다 :

I want to be able to see the genre choices instead of clicking "add"

두 번째 이미지 :

What happens when I click "add" 내 코드의 조각은 다음과 같습니다 :

GENRE_CHOICES = (
      ('rock', 'Rock'), 
      ('jazz/blues', 'Jazz/Blues'), 
      ('blues', 'Blues'), 
      ('r&b', 'R&B'), 
      ('jazz', 'Jazz'), 
      ('pop', 'Pop'), 
      ('hip-hop', 'Hip-Hop'),  
      ) 


def get_upload_path(dirname, obj, filename): 
    return os.path.join("audiotracks", dirname, obj.user.username, filename) 

def get_audio_upload_path(obj, filename): 
    return get_upload_path("audio_files", obj, filename) 


class Genre(models.Model): 
    genre_choices = models.CharField(max_length=1, choices=GENRE_CHOICES) 
    slug = models.SlugField(max_length = 100, unique = True) 

def __unicode__(self): 
    return self.title 

def get_absolute_url(self): 
    return ('view_midmentals_genre', None, {'slug':self.slug}) 

class AudioTrack(models.Model): 
    class Meta: 
     pass 

user = models.ForeignKey(User, 
    related_name = "tracks", 
    blank = True, 
    null = True 
) 

added_on = models.DateTimeField(auto_now_add=True, null = True) 
updated_on = models.DateTimeField(auto_now=True, null = True) 
audio_file = models.FileField(_("Audio file"), upload_to=get_audio_upload_path) 
title = models.CharField(_("Title"), max_length="200", null=True) 
description = models.TextField(_("Description"), null=True, blank=True) 
slug = models.SlugField(max_length = 40, unique = True) #so as to have a dedicated page for each category 
genre = models.ForeignKey(Genre) 

날 내가 필요하면 알려 주시기 바랍니다 내 질문이나 제목을 바꾸세요. 나는 말로 표현하기가 힘들었다. 고맙습니다.

답변

2

아마도 장르 모델에 레코드를 추가하지 않았기 때문에 + 아이콘이 있습니다. 추가하면 콤보 상자에이 레코드가 포함됩니다.

class AudioTrack(models.Model): 
    genre = models.CharField(..., choices = GENRE_CHOICES) 

및 콤보 상자가 목록에있는 선택 사항을 포함합니다 :

그러나 당신이 이미 장르가 그래서 그냥이 작업을 수행 할 수있을 것 무엇을 알고있는 것 같다.

GENRE_CHOICES = ((0,'Rock'),(1, 'Jazz'),(2,'Hip Hop')) 

이후 :

genre = models.PositiveSmallIntegerField(choices = GENRE_CHOICES) 
+0

이 아직도 외래 키 관계를 정의 할

및 고려하면 선택 목록 좋아해요? – dobleV

+0

아니요, 장르 모델 – YardenST

+0

을 삭제해야합니다. 결국 내 html 템플릿에서 특정 장르의 모든 트랙을 표시 할 수 있습니다. 장르 아래에 모든 트랙을 표시하는 페이지가 있습니다. 모델을 삭제해도 여전히이 작업을 수행 할 수 있습니까? 감사합니다 – dobleV

관련 문제