2014-04-20 2 views
0

기본적으로 사용자가 여러 가지 기술을 가질 수있는 응용 프로그램을 만들고 있습니다.서버 시작시 Django에서 객체를 만드는 가장 좋은 방법은 무엇입니까?

class Skill(models.Model): 
    name = models.CharField(max_length=30) 

class Listing(models.Model): 
    ...(other stuff for the model here) 
    skill = models.ManyToManyField(Skill,) 

을 그리고 내가 이렇게 보이는 양식을 만들거야 : 그래서 이런 식으로 그것을 설정을 가지고

class ListingForm(ModelForm): 
    skill = forms.ModelMultipleChoiceField(queryset=Skill.objects.all()) 
    class Meta: 
    model = Listing 

최종 결과는 내가 각각의 스킬 표시하려는 것 양식의 확인란으로 따라서 선택할 수있는 기술이 30 가지가 될 수 있으며 사용자는 자신이 능숙하다는 것을 확인할 수 있습니다. 내가 직면하고있는 문제는 어떻게 든 초기에 30 가지의 스킬 개체를 만들어야한다는 것입니다. 객체를 만드는 방법을 알고 있지만 코드를 어디에 넣어야할지 모르기 때문에 ~ 30 스킬은 서버가 처음 시작될 때만 만들어집니다. 초기 스킬 개체는 어디에 만들어야합니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

+0

수있는 데이터베이스가 없습니까? 스킬을 넣으시겠습니까? 확실히 앞으로의 길은 스킬을 테이블에 저장하고 거기에서 쿼리하는 것입니다. –

+0

데이터베이스가 있지만 Python/Django를 사용하면 SQL을 직접 다룰 필요가 없으며 데이터베이스를 자주 삭제하기 때문에 응용 프로그램을 개발하고 끊임없이 모델을 변경하므로이 작업을 수행하는 것을 선호합니다. – reparadocs

+0

"지속적으로 변화하는"모델을 다루기 위해 데이터베이스와 South http://south.aeracode.org/를 사용해야합니다. 또는 Django 1.7을 사용하십시오! – danielcorreia

답변

0

당신은 fixtures.json 파일을 생성하고 사용할 수 있습니다 loaddata :

fixtures.json

[ 
    { 
     "pk": 1, 
     "model": "appname.skill", 
     "fields": { 
      "name": "skill name", 
     } 
    } 
} 

cmd를 라인 : 여기

python manage.py loaddata path/to/fixtures.json 

그것을 위해 몇 가지 문서입니다 : Providing initial data

+0

고마워! 이것은 내가 찾고 있었던 바로 그 것이다 :) – reparadocs

관련 문제