DIY 애플리케이션 (Django 1.5)을 작업 중이며로드 블록에 도달했습니다. 관련된 주요 모델은 Guide
, Tool
, Item
, Step
입니다. 가이드는 많은 도구 및 항목을 가질 수 있으며 도구 또는 항목은 많은 가이드에 속할 수 있습니다. 한 단계에 대해서도 마찬가지입니다. 많은 도구와 항목을 가질 수 있으며 도구 나 항목은 많은 단계에 속할 수 있습니다. 가이드에는 많은 단계가 있고 단계는 가이드에 속합니다.Django ModelMultipleChoiceField 다른 모델의 many-to-many
가이드 대다 항목
가이드 대다 도구
가이드 일대 단계
단계 many-to-many 항목
단계 대다 도구
로드 블록 ... 가이드 수준에서
, 나는 도구 및 항목 옵션은 무한되고 싶어요. 그러나 스텝 - 레벨에서 툴과 아이템 옵션은 그것이 속한 가이드에 할당 된 옵션으로 제한되기를 바랍니다. 기본적으로 스텝을 생성/편집 할 때 가이드를 통해 사용할 수있는 모든 도구 및 항목에 대한 체크 박스를 나열하고 싶습니다. 사용자는 현재 단계에 필요한 것을 선택합니다. 각 단계에는 도구와 항목의 다양한 조합이 있습니다 (따라서 확인란의 필요성).
Step의 ModelForm 클래스에 대해 ModelMultipleChoiceField
을 발견했습니다. 거기서는 쿼리 세트를 지정할 수 있습니다. 그러나 가이드 모델의 인스턴스에 액세스하여 선택 항목을 제대로 만들 수 있도록 도구 및 항목을 검색하려면 어떻게해야합니까? 나는 당신이보기에서하는 것과 유사한 쿼리를 제공하고자은 ...
Guide.objects.get(pk=n).tools.all()
Guide.objects.get(pk=n).items.all()
어떻게
ModelMultipleChoiceField
를 통해 것을 달성 할 수 있는가? 나는 이것을 분명히 설명 할 수 있었으면 좋겠다.
미리 도움을 청하십시오.
편집class Tool(models.Model):
name = models.CharField(max_length=100)
...
class Item(models.Model):
name = models.CharField(max_length=100)
...
class Guide(models.Model):
models.CharField(max_length=100)
description = models.CharField(max_length=500)
tools = models.ManyToManyField(Tool, null=True, blank=True)
items = models.ManyToManyField(Item, null=True, blank=True)
...
class Step(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
guide = models.ForeignKey(Guide)
tools = models.ManyToManyField(Tool, null=True, blank=True)
items = models.ManyToManyField(Item, null=True, blank=True)
: 나는 나 같은 self.instance.guide.tools.all()
을 내 쿼리를 만들 수 있도록, 내가 self.instance
에 대한 참조를 얻을 ModelMultipleChoiceField
의 __init__
메소드를 오버라이드 (override) 할 필요와 같은 추가 읽기 후 5/2 , 그것은 보인다 self.instance.guide.items.all()
. 그런 다음 fields['field_name']
을 통해 필드를 만듭니다.
저는 지금 일하고 있습니다. 그래서 오늘 밤 늦게까지이 문제를 해결할 수 없습니다. 내 조사 결과를 다시보고하겠습니다.
다니엘, 당신은 아마, 질문에 대한 답을 작성해야합니다. –
예, 알림을 보내 주셔서 감사합니다! 몇 가지 작업을 수행합니다. –