我在 Laravel 5.7 中有以下工厂,在调用它时没有返回任何内容:
<?php
use Faker\Generator as Faker;
use Illuminate\Database\Eloquent\Model;
$factory->define(App\Record::class, function (Faker $faker) {
return [
"name" => $faker->name,
];
});
Run Code Online (Sandbox Code Playgroud)
而我的模型是:
<?php
namespace App;
use App\Product;
use Illuminate\Database\Eloquent\Model;
class Record extends Model
{
protected $table = "records";
protected $fillable = ["name"];
function __construct()
{
parent::__construct();
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里调用工厂:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Foundation\Testing\RefreshDatabase;
use App;
use App\Product;
use App\Record;
use App\User;
class RecordTest extends TestCase
{
use RefreshDatabase;
use …Run Code Online (Sandbox Code Playgroud) 我不太确定我是否理解路由在 DRF 中的工作原理。我浏览了文档,但仍然没有掌握其中的差异。
我有以下观点:
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from .models import Order
from .serializer import OrderSerializer
class OrderAPIViewSet(ViewSet):
def post(self, request):
print(request)
Run Code Online (Sandbox Code Playgroud)
这是urls.py在我的应用程序中:
from django.urls import include, path
from rest_framework import routers
from .views import OrderAPIViewSet
router = routers.DefaultRouter()
router.register(r'orders', OrderAPIViewSet, basename='order')
urlpatterns = router.urls
Run Code Online (Sandbox Code Playgroud)
这是主要的urls.py:
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns …Run Code Online (Sandbox Code Playgroud) django-urls django-views django-rest-framework django-rest-viewsets django-url-reverse
我有以下序列化程序:
from rest_framework import serializers
from .models import Product
class ProductSerializer(serializers.ModelSerializer):
""" Serializer for Product object """
class Meta:
model = Product
fields = ['name', 'slug', 'description', 'image', 'price', 'active',]
Run Code Online (Sandbox Code Playgroud)
以及以下测试:
from django.test import TestCase
from django.urls import reverse
from rest_framework.test import APIClient
from rest_framework import status
from .factories import ProductFactory
from .models import Product
from .serializer import ProductSerializer
PRODUCTS_URL = reverse('product-list')
def create_product(**params):
""" Helper function to create a new product """
return Product.objects.create(**params)
class PublicProductApiTests(TestCase):
"""
Test the …Run Code Online (Sandbox Code Playgroud) django serialization python-3.x django-serializer django-rest-framework
django ×1
django-urls ×1
django-views ×1
factory ×1
laravel ×1
php ×1
phpunit ×1
python-3.x ×1