我是一个python / 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)
我希望你能帮助我:)。
提前致谢!