У меня есть набор объектов document и label, и я хочу, чтобы эти два объекта были связаны. Это типичное отношение "многие-ко-многим". У меня есть следующий код:
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:
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))
Когда я загружаю документ, он добавляется в базу данных, но никаких меток не создается и не ассоциируется с документом. Нужно ли мне явно добавить что-то в функцию сохранения() документа, чтобы это произошло? Или где-то в файле Views.py? Я предполагаю, что это должно быть что-то вроде:
Мне кажется, что это довольно стандартная функциональность, которая, как я предполагал, будет встроена в отношения "многие-ко-многим" в django, но, похоже, пока что она у меня не работает. Я пытаюсь избежать повторного изобретения колеса. Я новичок в django.
Заранее спасибо!