我有专辑和歌曲。在特定的相册页面,我想通过单击“添加歌曲”按钮添加歌曲并返回到该相册的页面: Album's page 从打开很好,让我输入歌曲标题。 但当我单击“提交”时,它会出现以下异常: Exception 以下是模板代码的一部分,其中表单被调用:
{% block body %}
<div class="container-fluid" style="position:relative; padding-left: 100px; padding-top: 50px;">
<img src="{{ album.album_logo.url }}" class="img-responsive" height="200" width="200">
<h1>{{ album.album_title }}</h1>
<h3>{{ album.artist }}</h3>
{% for song in album.song_set.all %}
{{ song.song_title }}
{% if song.is_favorite %}
<img src="http://vignette1.wikia.nocookie.net/defendersquest/images/1/17/Yellow_star_small.png/revision/latest?cb=20120430053933"
height="10" width="10"/>
{% endif %}
<br>
{% endfor %}
<a href="{% url 'music:song-add' album.pk %}">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add Song
</a>
</div>
{%endblock%}
给你网址.py公司名称:
^{pr2}$给你视图.py部分:
class SongCreate(CreateView):
model = Song
fields = ['song_title']
def form_valid(self, form):
form.instance.album.pk = self.request.GET.get('album_pk')
return super(SongCreate, self).form_valid(form)
这是模型.py公司名称:
class Album(models.Model):
# attributes/columns:
artist = models.CharField(max_length=250) #CharField is the info on type of info that var holds
album_title = models.CharField(max_length=500)
genre = models.CharField(max_length=100)
album_logo = models.FileField()
def get_absolute_url(self):
return reverse('music:detail', kwargs={'pk': self.pk})
def __str__(self): #string representation of Album objects
return self.album_title + ' - ' + self.artist
class Song(models.Model):
#attributes/columns:
album = models.ForeignKey(Album, on_delete=models.CASCADE) #linking songs to Albums!!!
file_type = models.CharField(max_length=10)
song_title = models.CharField(max_length=250)
is_favorite = models.BooleanField(default=False)
def get_absolute_url(self):
return reverse('music:detail', kwargs={'pk': self.album.pk})
def __str__(self):
return self.song_title
您没有正确设置相关的ForeignKey对象。您可以使用模型实例中相关对象的hidden
_id
字段访问相关字段的pk:相关问题 更多 >
编程相关推荐