我使用django rest框架来生成一个api。其中我有两个模型,关联视图和序列化程序。它们是beers
和{beers
api端点按预期工作,但是每当我试图访问pours
端点时,都会出现以下错误:
Could not resolve URL for hyperlinked relationship using view name "pours-detail". You may have failed to include the related model in your API, or incorrectly configured the 'lookup_field' attribute on this field.
我不太清楚我做错了什么,有人能指出错误吗?在
模型.py
from __future__ import unicode_literals
from django.db import models
from django.utils import timezone
class Beers(models.Model):
"""
Beers
"""
# The unique id
id = models.AutoField(primary_key=True)
# Timestamps
created_at = models.DateTimeField(default=None, null=True)
updated_at = models.DateTimeField(default=None, null=True)
tap = models.PositiveIntegerField(default=None, null=True)
url = models.CharField(max_length=255, default=None, null=True)
abv = models.DecimalField(default=None, null=True, decimal_places=2, max_digits=3)
style = models.CharField(max_length=255, default=None, null=True)
score = models.PositiveIntegerField(default=None, null=True)
tap_date = models.PositiveIntegerField(default=None, null=True)
size = models.PositiveIntegerField(default=None, null=True)
def save(self, *args, **kwargs):
"""
On save, update timestamps
"""
# If the record does not currently exist in the database
self.created_at = timezone.now()
self.updated_at = timezone.now()
return super(Beers, self).save(*args, **kwargs)
class Meta:
db_table = 'beers'
index_together = [("tap", "tap_date")]
class Pours(models.Model):
"""
Handles pours
"""
id = models.AutoField(primary_key=True)
tap = models.PositiveIntegerField()
amount = models.DecimalField(decimal_places=3, max_digits=19)
date = models.PositiveIntegerField()
def save(self, *args, **kwargs):
"""
On save, update timestamps
"""
return super(Pours, self).save(*args, **kwargs)
class Meta:
db_table = 'pours'
index_together = [("tap", "date")]
视图.py
^{pr2}$序列化程序.py
from rest_framework import serializers
from .models import *
class BeersSerialzier(serializers.HyperlinkedModelSerializer):
queryset = Beers.objects.all()
class Meta:
model = Beers
class PoursSerialzier(serializers.HyperlinkedModelSerializer):
queryset = Pours.objects.all()
class Meta:
model = Pours
网址.py
from django.conf.urls import include, patterns, url
from rest_framework import routers
import views
router = routers.DefaultRouter()
router.register(r'beers', views.BeersView)
router.register(r'pours', views.PoursView)
urlpatterns = [
url('^', include(router.urls)),
]
目前没有回答
相关问题 更多 >
编程相关推荐