필자는 설명서를보고 인라인 형식이 그 대답일지도 모른다고 생각했습니다. 그러나 나는 완전히 확신하지 못합니다.Django에서 양식 내의 양식?
일반적으로 ModelForm을 만들 때마다 관련 모델에만 바인딩됩니다. 그러나 양식 내에서 두 개의 모델을 편집하려면 어떻게해야합니까?
간단히 말해서 conversation
클래스를 편집 할 때 드롭 다운에서 Deal
클래스를 선택하면 선택한 거래 클래스의 상태를 변경할 수 있기를 원하지만 deal_name은 변경하지 못합니다. 모두 같은 양식에 있습니다. 장고가 그것을 허용합니까?
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)
업데이트 :
인라인 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 }}
내가 얻는 결과는 내가 예상 한 결과가 아닙니다. 나는 3 가지 형태의 회화 수업을 듣고 있는데, 첫 번째 수업은 완성되어집니다. 그러나 Deal
드롭 다운 메뉴가 전혀 표시되지 않습니다. 왜?
이것은 인라인가 –
@ArgsKwargs 감사에 대해 정확히 것입니다. 당신이 좀 봐 주실 수 있다면, 질문을 업데이트했습니다. – Houman
인라인 작업 방식으로 인해 인라인은 항상 편집중인 거래 개체의 일부가 될 것으로 예상됩니다. 다른 방법으로 작업하고 싶다면 다른 접근 방식이 필요하며 거래 필드를 해킹하여 사용자 지정을 만들 수 있습니다 거래 필드 입력이 주 객체와 일치하지 않으면 대화 객체를 다른 거래로 이동하는 동작을 절약합니다. –