我正在使用Django表单。我的问题是外键字段和那些使用初始字段的所有关联条目(与该记录相关的所有记录除了我想要的一个条目,例如,而不是获得主键,我得到主键,发布主题,帖子正文和该记录所归属的所有其他值)。表单和其他相关查询仍然可以正常工作,但此行为会阻塞我的数据库。如何获取我想要的特定字段而不是所有记录。我的模型的一个例子是:
childParentId的表单字段仅返回postID
,postSubject
和postBody
而不是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 :(得分:0)
我使用以下方法解决了这个问题。
forms.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
views.py
中的
@login_required def forum_view(request,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})