2016-12-24 65 views
0

我有以下的模型类:继续得到“使用视图名称无法解析超链接关系URL”

# Song Model 
class Song(models.Model): 
    title = models.CharField(max_length=200) 
    artist = models.CharField(max_length=200) 
    content = models.TextField() 
    user = models.ForeignKey('auth.User', related_name='songs') 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

    def __str__(self): # __unicode__ on Python 2 
     return self.title + ' ' + self.artist 

    class Meta: 
     ordering = ('title',) 

我的串行

class SongSerializer(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     fields = ('id', 'title', 'artist', 'content') 
     model = Song 


class UserSerializer(serializers.ModelSerializer): 
    songs = serializers.HyperlinkedRelatedField(
     many=True, read_only=True, 
     view_name='songs' 
     ) 

    class Meta: 
     model = User 
     fields = '__all__' 

和我的看法

class SongViewSet(viewsets.ModelViewSet): 
    queryset = Song.objects.all() 
    serializer_class = SongSerializer 


class UserViewSet(viewsets.ModelViewSet): 
    queryset = User.objects.all() 
    serializer_class = UserSerializer 

我想获取歌曲列表,但我不断收到此错误 错误地配置:无法使用视图名称“歌曲”解析超链接关系的URL

这与PrimaryKeyRelatedField 一起使用,但不是现在。

routes文件以供参考:

router = DefaultRouter() 
router.register(r'songs', views.SongViewSet) 
router.register(r'users', views.UserViewSet) 


urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^api/', include(router.urls)), 
] 

回答

0

嗯,我能使其与

view_name='song-detail' 

工作,如果有人想解释它是如何工作的,为什么,请随时

相关问题