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)
我希望你能幫助我:)
在此先感謝!