2010-04-16 3 views
0

사용자가 새로운 프로젝트를 시작할 수있는 프로젝트 페이지가 있습니다. 각 프로젝트에는 두 가지 형식이 있습니다.여러 장고 양식에 입력 된 데이터를 새로운 URL로 생성하기

두 가지 형태가 있습니다 : 각각의 모델

class ProjectForm(forms.Form): 
Title = forms.CharField(max_length=100, widget=_hfill) 

class SsdForm(forms.Form): 
Status = forms.ModelChoiceField(queryset=P.ProjectStatus.objects.all()) 

을 다음과 같이 사용자가이 두 양식을 채우고 때

class Project(DeleteFlagModel): 
Title = models.CharField(max_length=100) 

class Ssd(models.Model): 
Status = models.ForeignKey(ProjectStatus) 

지금, 데이터가 데이터베이스에 저장됩니다. 내가 원하는 것은이 데이터에 액세스하여 새로운 URL에 생성하는 것입니다. 따라서이 두 형식의 "제목"과 "상태"를 가져 와서 해당 프로젝트의 새 페이지에 표시하려고합니다. 한 번에 하나의 프로젝트에 대해서만 모든 프로젝트의 "제목"과 "상태"를 표시하고 싶지 않습니다. 이 말이 맞는다면 어떻게해야합니까?

나는 장고와 파이썬 (Django 튜토리얼을 읽었지만)에 익숙하기 때문에 최대한 많은 도움이 필요하다.

ProjectStatus 코드 (모델에 따라)입니다 :

class ProjectStatus(models.Model): 
Name = models.CharField(max_length=30) 
def __unicode__(self): 
return self.Name 
+0

당신은'ProjectStatus' (아마 모델)라고 불리는 것을 사용하고 있습니다 만, 당신은 그것이 무엇을하는지 보여주지 못했습니다. 클래스 ProjectStatus (models.Model) : –

+0

이이 코드입니다 이름 = models.CharField (MAX_LENGTH = 30) 데프 __unicode __ (자기) : 반환 self.Name –

답변

1

당신은 ProjectSSD 사이의 관계를하지 않는 것

편집 사전에

감사합니다. 이것이 없다면 특정 SSD 객체가 특정 프로젝트의 멤버라는 것을 알 수있는 방법이 없습니다. 이 모델에는 다른 필드가 있다고 가정합니다. 그렇지 않으면 SSD를 별도의 모델로 사용하는 데 아무런 문제가 없습니다. status은 Project 모델의 필드 여야합니다.

하지만 프로젝트와 SSD 사이의 관계를 가지고 나면, 당신은 단지 프로젝트를 가져온 다음 관계를 사용하여 한 번에 관련 SSD 객체를 표시 할 수 있습니다 :

proj = Project.objects.get(pk=myvalue) 
for ssd in proj.ssd_set.all(): 
    print ssd.Status 

은 또한, 그 형태가됩니다 ModelForms 대신 일반 양식. 그 안에있는 데이터는 어떻게됩니까? 모델 형식 인 경우 form.save()을 호출하여 저장할 수 있습니다.

관련 문제