2010-03-15 4 views
1

저는 장고 양식을 사용하고 있습니다. 내가 가지고있는 문제는 외래 키 필드와 이니셜을 사용하는 사람은 모든 관련 항목 (모든 레코드는 기본 키를 얻는 대신 예를 들어 원한 항목이 아닌 해당 레코드와 관련된 모든 레코드를 가져옵니다. 기본 키, 게시 주제, 게시물 본문 가져 오기 그 기록에 기인 한 다른 모든 값). 양식 및 기타 관련 쿼리는 여전히 잘 작동하지만이 동작으로 인해 데이터베이스가 막히고 있습니다. 어떻게하면 모든 레코드 대신 원하는 필드를 얻을 수 있습니까? 내 모델의 예는 여기에 있습니다 : childParentId에 대한Django 폼, 외래 키 및 초기 값은 모두 연관된 값

양식 필드는 혼자 postID, postSubjectpostBody 대신 postID 반환합니다.

또한 form = ForumCommentForm(initial = {'postSubject':forum.objects.get(postID = postID), })postID과 관련된 모든 레코드를 반환합니다.

class forum(models.Model): 
postID = models.AutoField(primary_key=True) 
postSubject = models.CharField(max_length=25) 
postBody = models.TextField() 
postPoster = models.ForeignKey(UserProfile) 
postDate = models.DateTimeField(auto_now_add=True) 
child = models.BooleanField() 
childParentId = models.ForeignKey('self',blank=True, null=True) 
deleted = models.BooleanField() 

def __unicode__(self): 
    return u'%s %s %s %s %s' % (self.postSubject, self.postBody, self.postPoster, self.postDate, self.postID 

답변

0

나는 이것을 다음과 같이 설명했다. views.pyforms.py

class ForumCommentForm(forms.ModelForm): 
    postBody = forms.CharField(widget=forms.Textarea(attrs={'cols':'70', 'rows':'5'})) 
    childParentId = forms.CharField(widget=forms.TextInput) 
    class Meta: 
     model = forum 

@login_required DEF forum_view (요청 postID)

post = list(forum.objects.filter(postID = postID)|forum.objects.filter(childParentId__in = postID)) 

if request.method == 'POST': 

    form = ForumCommentForm(request.POST) 
    if form.is_valid(): 
     form.save() 
     #this reloads the query to include updated values 
     post = list(forum.objects.filter(postID = postID)|forum.objects.filter(childParentId__in = postID)) 
     #this returns an empty form 
     form = ForumCommentForm() 

else: 
    parent = forum.objects.get(postID = postID) 
    form = ForumCommentForm(initial = {'postSubject':parent.postSubject, 'child':'1', 'childParentId':parent.postID})