【发布时间】:2016-12-28 07:15:11
【问题描述】:
在为 Django Rest Framework 编写测试时,应该如何创建超链接关系?
我正在尝试使用相关的 Bar 对象创建一个 Foo 对象,但我不确定如何最有效地创建该关系。
# models.py
import uuid
from django.db import models
class Foo(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4)
bar = models.ForeignKey('Bar')
class Bar(models.Model):
BarUUID = models.UUIDField(primary_key=True, default=uuid.uuid4
# serializers.py
from rest_framework import serializers
from myapp.models import Bar, Foo
class FooSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Foo
fields = ('url', 'id', 'bar')
class BarSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Bar
fields = ('url', 'BarUUID')
# views.py
class FooViewSet(viewsets.ModelViewSet):
queryset = Foo.objects.all()
serializer_class = FooSerializer
class BarViewSet(viewsets.ModelViewSet):
queryset = Bar.objects.all()
serializer_class = BarSerializer
# urls.py
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'foos', views.FooViewSet)
router.register(r'bars', views.BarViewSet)
# tests.py
from rest_framework.reverse import reverse
from rest_framework.test import APITestCase
class FooTests(APITestCase):
def test_create_foo(self):
bar = Bar.objects.create()
url = reverse('foo-list')
data = {
'bar': # how do I get the URL?
}
response = self.client.post(url, data, format='json')
【问题讨论】:
标签: django unit-testing testing django-rest-framework