2014-11-24 37 views
1

我是一名python/django新手。對不起,我的英語我不是英語母語的人。我正在嘗試製作一個用戶可以添加相關模型的表單。在管理網站上,我可以做到這一點,但我很難在網站上實現同樣的事情。Django前端聯機表格及相關型號

下面是管理屏幕截圖。我想在前端實現相同的功能,即可以將新藝術家和新標籤添加到表單中。

http://postimg.org/image/lv83s9fq5/

這裏是我的models.py

from django.db import models 
from uuslug import uuslug 
from django.core.urlresolvers import reverse 
from django.contrib.auth.models import User 


class Tag(models.Model): 
    name = models.CharField(max_length=200, unique=True) 
    slug = models.CharField(max_length=200, unique=True) 

    class Meta: 
     ordering = ["name"] 

    def __str__(self): 
     return self.slug 


class Artist(models.Model): 
    name = models.CharField(max_length=100, unique=True) 
    slug = models.CharField(max_length=100) 

    class Meta: 
     ordering = ["name"] 

    def __str__(self): 
     return self.name 


class Song(models.Model): 
    S_KEYS = (
     ('C', 'C'), 
     ('C#', 'C#'), 
     ('D', 'D'), 
     ('D#', 'D#'), 
     ('E', 'E'), 
     ('F', 'F'), 
     ('F#', 'F#'), 
     ('G', 'G'), 
     ('G#', 'G#'), 
     ('A', 'A'), 
     ('A#', 'A#'), 
     ('B', 'B'), 
    ) 
    title = models.CharField(max_length=200) 
    artist = models.ForeignKey(Artist) 
    user = models.ForeignKey(User) 
    song_key = models.CharField(max_length=2, choices=S_KEYS) 
    body = models.TextField() 
    views = models.IntegerField(default=0) 
    slug = models.CharField(max_length=100, blank=True) 
    created_at = models.DateTimeField(auto_now_add=True) 
    modified = models.DateTimeField(auto_now=True) 
    tags = models.ManyToManyField(Tag, blank=True) 

    class Meta: 
     ordering = ["title"] 

    def __str__(self): 
     return self.title 


    def save(self, *args, **kwargs): 
     self.slug = uuslug(self.title, instance=self, max_length=100) 
     super(Song, self).save(*args, **kwargs) 


    def add_view_count(self): 
     if self.views is not None: 
      self.views +=1 

下面是在我的views.py

class SongAdd(generic.CreateView): 
    template_name= 'song/add.html' 
    model = Song 
    form_class = SongForm 
    success_url = '/' 


    def form_valid(self, form): 
     form.instance.user = self.request.user 
     return super(SongAdd, self).form_valid(form) 

我希望你能幫助我:)

在此先感謝!

回答

0

使用django-dynamic-formset應用程序,與管理員使用名稱inlines.js相同。它有你需要的很好的例子。