我一直在查看文档,并认为内联表单集可能是答案。但我并不完全确定。
通常,每当您创建 ModelForm 时,它只会绑定到相关的模型。但是,如果您想在一个表单中编辑两个模型怎么办?
简而言之,在编辑 classconversation
并从下拉列表中选择一个Deal
类时,我也希望能够更改所选交易类的状态(但不是 deal_name)。都在同一个表格内。Django允许吗?
class Deal(models.Model):
deal_name = models.CharField()
status = models.ForeignKey(DealStatus)
class Conversation(models.Model):
subject = models.CharField()
deal = models.ForeignKey(Deal, blank=True, null=True)
更新:
我不确定 inline-formssets 是否是答案的原因是以下行为:
看法:
call = get_object_or_404(contact.conversation_set.all(), pk=call_id)
ConversationFormSet = inlineformset_factory(Deal, Conversation)
fset = ConversationFormSet(instance=call)
variables = RequestContext(request, {'formset':fset})
return render_to_response('conversation.html', variables)
模板
{{ formset }}
我得到的结果不是我所期望的。我得到了三种形式的会话类,其中第一种被填写(由于编辑和传递实例)。但是,Deal
下拉菜单根本没有列出。为什么?