문서 개체 및 레이블 개체 집합이 있고이 두 개체를 연결해야합니다. 전형적인 다 - 대 - 다 관계입니다. 그러나 더 라벨이되고 있지, 내가 문서를 업로드 할 때모델을 저장할 때 다 - 대 - 다 관계가 언제 그리고 어떻게 생성됩니까?
class DocumentForm(ModelForm):
class Meta:
model = Document
fields = ["title","labels"]
def upload_document(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
new_document = form.save()
return HttpResponseRedirect("/thanks/")
else:
form = DocumentForm()
return render_to_response('upload_page.html', {'form':form}, context_instance=RequestContext(request))
,이 데이터베이스에 추가됩니다 :
Models.py :
class Document(models.Model):
title = models.CharField(max_length=50, unique=True)
title_slug = models.SlugField(max_length=50, unique=True, editable=False)
labels = models.ManyToManyField('Label')
def save(self, *args, **kwargs):
self.title_slug = slugify(self.title)
super(Document, self).save(*args, **kwargs)
class Label(models.Model):
name = models.CharField(max_length=40, unique=True)
slug = models.SlugField(max_length=40, unique=True, editable=False)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Document, self).save(*args, **kwargs)
Views.py 나는 다음과 같은 코드가 있습니다 생성되거나 문서와 연관됩니다. 이 작업을 수행하려면 문서의 save() 함수에 명시 적으로 추가해야합니까? 또는 Views.py 파일의 어딘가에 있습니까? 그것은, 새로운 라벨
- 확인 : 나는 뭔가를 갈 것이라고 상상한다 새/기존 label_id
- 는 내가하는 내장 될 것으로 꽤 표준 기능입니다 내가 그 느낌 (자동 대다 관계에 대해 생성)을 document_labels 테이블
에 레코드 추가 장고에있는 일대 다 관계,하지만 지금까지 나를 위해 일하는 것 같지 않습니다. 나는 바퀴를 여기에서 재발 명시키는 것을 피하려고 노력하고있다. 다소 django에 새로운.
미리 감사드립니다.
? 다른 방법으로'문서'를 추가 하시겠습니까? 무슨 save() 메서드에 대해 이야기하고 있습니까? 'Document','Label' 또는 폼에있는 것? 객체를 저장하는 샘플보기/양식/기타 코드를 제공하십시오. – andreaspelme
나는 그것이 정말로 들어가야하는 방법을 잘 모르겠다. 그러므로 내 질문 =] 문서는 모두 사이트의 Form을 통해 추가되고있다. 내가 views.py에서 해당 코드를 포함하도록 질문을 업데이 트했습니다 –